Xinqi Bao's Git

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