Xinqi Bao's Git

vimrc: new plugin, majutsushi/tagbar, airblade/vim-gitgutter
[dotfiles.git] / .vimrc
1 syntax enable
2 "colorscheme wombat256mod
3 set background=dark
4
5 "In order to display chinese in GBK
6 let &termencoding=&encoding
7 set fileencodings=utf-8,gbk
8 set fileformat=unix
9 set foldmethod=manual
10
11 set t_Co=256 "terminal color
12 set t_ut=""
13 "set term=xterm-256color
14 set encoding=utf-8 "required for ycm
15 set noerrorbells
16 set tabstop=4 softtabstop=4
17 set shiftwidth=4
18 set expandtab
19 set smartindent
20 set backspace=indent,eol,start
21 set number
22 set nowrap
23 set smartcase
24 set incsearch
25 set hlsearch
26 set ignorecase
27 set cursorline
28 set autochdir
29 set mouse=a
30 set showtabline=2
31 set laststatus=2 "always show status line
32 set noshowmode
33 set wildmenu
34
35 " Turn backup off
36 set noswapfile
37 set nobackup
38 set nowritebackup
39 set undodir=~/.vim/undodir
40 set undofile
41
42 "ColumnLimit
43 set colorcolumn=120
44 highlight ColorColumn ctermbg=0 guibg=lightgrey
45
46 set tags=tags~;,tags~
47 "setting gf (go file) path
48 "change kernel version to your version, for kernel development
49 set path=.,lib;,include;,includes;
50 set path+=/lib/modules/5.4.46-1-lts/build/include
51 set path+=/lib/modules/5.4.46-1-lts/build/arch/x86/include
52 set path+=/usr/include,/usr/include/c++/*
53 set path+=/usr/local/include
54 set path+=~/lib
55
56 " Writes to the unnamed register also writes to the * and + registers. This
57 " makes it easy to interact with the system clipboard
58 if has ('unnamedplus')
59 set clipboard=unnamedplus
60 else
61 set clipboard=unnamed
62 endif
63
64 call plug#begin()
65
66 Plug 'vim-airline/vim-airline'
67 "Plug 'vim-airline/vim-airline-themes'
68
69 Plug 'morhetz/gruvbox'
70 Plug 'ycm-core/YouCompleteMe'
71 Plug 'mbbill/undotree'
72 "Plug 'kien/ctrlp.vim'
73
74 Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
75 Plug 'junegunn/fzf.vim'
76
77 Plug 'tpope/vim-fugitive'
78 Plug 'preservim/nerdtree'
79 Plug 'rhysd/vim-clang-format'
80 Plug 'ludovicchabant/vim-gutentags'
81 Plug 'plasticboy/vim-markdown'
82 Plug 'christoomey/vim-tmux-navigator'
83
84 Plug 'Yggdroot/indentLine'
85 call plug#end()
86
87 colorscheme gruvbox
88
89 "tabline with airline
90 ":help airline-tabline
91 let g:airline#extensions#tabline#enabled = 1
92 let g:airline#extensions#tabline#show_buffers = 0
93 let g:airline#extensions#tabline#show_splits = 0
94 let g:airline#extensions#tabline#show_tab_count = 0
95 let g:airline#extensions#tabline#show_close_button = 0
96
97 autocmd StdinReadPre * let s:std_in=1
98 "when vim openning with no file, open NERDTree
99 autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
100
101 let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
102 let g:ctrlp_use_caching = 0
103
104 "mapping for fzf.vim
105 nnoremap <C-p> :GFiles<CR>
106 "as default <C-f>/<C-b> pair used to page down/up entire page
107 nnoremap <C-f> :Tags<CR>
108
109 let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
110 let g:ycm_confirm_extra_conf = 0
111 let g:ycm_enable_diagnostic_signs = 0
112 let g:ycm_always_populate_location_list = 1
113 "let g:ycm_show_diagnostics_ui = 0
114 let g:ycm_add_preview_to_completeopt = 1
115 let g:ycm_autoclose_preview_window_after_completion = 1
116 let g:ycm_auto_hover = 'no'
117
118 let mapleader = " "
119 nnoremap J :tabprevious<CR>
120 nnoremap K :tabnext<CR>
121 nnoremap <leader>J :tabmove -1<CR>
122 nnoremap <leader>K :tabmove +1<CR>
123 nnoremap <C-h> <C-w>h
124 nnoremap <C-j> <C-w>j
125 nnoremap <C-k> <C-w>k
126 nnoremap <C-l> <C-w>l
127 nnoremap <leader>" viw<esc>a"<esc>bi"<esc>lel
128 nnoremap <leader>' viw<esc>a'<esc>bi'<esc>lel
129 nnoremap <leader>u :UndotreeShow<CR>
130 nnoremap <leader>n :NERDTreeToggle<CR>
131 nnoremap <silent> <Leader>+ :resize +5<CR>
132 nnoremap <silent> <Leader>- :resize -5<CR>
133 nnoremap <silent> <Leader>v+ :vertical resize +5<CR>
134 nnoremap <silent> <Leader>v- :vertical resize -5<CR>
135
136 nnoremap <silent> <leader>gd :YcmCompleter GoTo<CR>
137 nnoremap <silent> <leader>gr :YcmCompleter GoToReferences<CR>
138
139 "HighLight trailing whitespace"
140 highlight ExtraWhitespace ctermbg=red guibg=red
141 match ExtraWhitespace /\s\+$/
142
143 "use powerline-vim for normal use
144 "instead of installing for both user and root
145 "run to install lib: pip3 install --user powerline-status
146 "python3 from powerline.vim import setup as powerline_setup
147 "python3 powerline_setup()
148 "python3 del powerline_setup