-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvimrc
More file actions
executable file
·214 lines (179 loc) · 5.9 KB
/
vimrc
File metadata and controls
executable file
·214 lines (179 loc) · 5.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
" the call to :runtime you can find below. If you wish to change any of those
" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
" will be overwritten everytime an upgrade of the vim packages is performed.
" It is recommended to make changes after sourcing debian.vim since it alters
" the value of the 'compatible' option.
" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim
" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible
set nocompatible
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if has("syntax")
syntax on
endif
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
set background=dark
" Uncomment the following to have Vim jump to the last position when
" reopening a file
"if has("autocmd")
" au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
"endif
" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"if has("autocmd")
" filetype plugin indent on
"endif
" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
"set smartcase " Do smart case matching
set incsearch " Incremental search
"set autowrite " Automatically save before commands like :next and :make
"set hidden " Hide buffers when they are abandoned
if has ('mouse')
set mouse=a " Enable mouse usage (all modes)
endif
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
" everything after this is NOT Vim default
" set number " display line numbers
set nu rnu
set numberwidth=6 " set width of line number column
set history=500
set showcmd
set hlsearch
set tabstop=4
set shiftwidth=4
set expandtab
set smarttab
set noerrorbells
set laststatus=2
set autoindent
filetype plugin indent on
set statusline=%F\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
set autoread
set foldmethod=indent
if !has('nvim')
if has("mouse_sgr")
set ttymouse=sgr
else
set ttymouse=xterm2
end
endif
set vb t_vb= " no visual bell & flash
" Apply C++ syntax highligting to icc files
autocmd BufNewFile,BufRead *.icc set syntax=cpp
" Expose all MarkDown syntax
autocmd BufNewFile,BufRead *.md set cole=0
" Strip trailing whitespace on save
autocmd BufWritePre * :%s/\s\+$//e
" Highlight column 80 of active window
augroup BgHighlight
autocmd!
autocmd WinEnter * set colorcolumn=80
autocmd WinLeave * set colorcolumn=0
augroup END
" set up tab labels with tab number, buffer name, number of windows
if exists("+showtabline")
function! MyTabLine()
let s = ''
let wn = ''
let t = tabpagenr()
let i = 1
while i <= tabpagenr('$')
let buflist = tabpagebuflist(i)
let winnr = tabpagewinnr(i)
let s .= '%' . i . 'T'
let s .= (i == t ? '%1*' : '%2*')
let s .= ' '
let wn = tabpagewinnr(i,'$')
let s .= (i== t ? '%#TabNumSel#' : '%#TabNum#')
let s .= i
if tabpagewinnr(i,'$') > 1
let s .= '.'
let s .= (i== t ? '%#TabWinNumSel#' : '%#TabWinNum#')
let s .= (tabpagewinnr(i,'$') > 1 ? wn : '')
end
let s .= ' %*'
let s .= (i == t ? '%#TabLineSel#' : '%#TabLine#')
let bufnr = buflist[winnr - 1]
let file = bufname(bufnr)
let buftype = getbufvar(bufnr, 'buftype')
if buftype == 'nofile'
if file =~ '\/.'
let file = substitute(file, '.*\/\ze.', '', '')
endif
else
let file = fnamemodify(file, ':p:t')
endif
if file == ''
let file = '[No Name]'
endif
let s .= file
" mod check
let m = 0
for b in tabpagebuflist(i)
if getbufvar( b, "&modified" )
let m += 1
endif
endfor
if m > 0
let s .= '[' . m . '+]'
endif
let s .= (i == t ? '%m' : '')
let i = i + 1
endwhile
let s .= '%T%#TabLineFill#%='
return s
endfunction
set stal=2
set tabline=%!MyTabLine()
endif
set statusline+=%#warningmsg#
set statusline+=%*
" vimplug
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
if empty(glob(data_dir . '/autoload/plug.vim'))
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin()
Plug 'tpope/vim-fugitive'
Plug 'valloric/youcompleteme'
Plug 'yggdroot/indentline'
Plug 'sheerun/vim-polyglot'
Plug 'scrooloose/syntastic'
Plug 'yegappan/grep'
Plug 'airblade/vim-gitgutter'
Plug 'junegunn/fzf'
Plug 'flazz/vim-colorschemes'
Plug 'scrooloose/nerdtree'
Plug 'dense-analysis/ale'
call plug#end()
" you complete me
let g:ycm_clangd_binary_path = "/usr/bin/clangd-12"
colorscheme badwolf
" syntastic options
if get(g:, 'loaded_syntastic_plugin', 0)
set statusline+=%{SyntasticStatuslineFlag()}
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
let g:syntastic_enable_signs = 1
let g:syntastic_cpp_check_header = 1
let g:syntastic_cpp_config_file = '.syntastic_cpp_config'
let g:syntastic_cuda_check_header = 1
let g:syntastic_cuda_config_file = '.syntastic_cuda_config'
endif