Repository navigation
Expand file tree
/
Copy pathinit.vim
More file actions
292 lines (237 loc) · 7.67 KB
/
Copy pathinit.vim
File metadata and controls
292 lines (237 loc) · 7.67 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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
set nocompatible
filetype off
let g:mapleader="\<Space>"
let g:maplocalleader="\<Space>"
call plug#begin()
"Navigation Plugins
Plug 'rbgrouleff/bclose.vim'
Plug 'dbakker/vim-projectroot'
Plug 'scrooloose/nerdtree'
Plug 'junegunn/fzf'
Plug 'junegunn/fzf.vim'
Plug 'majutsushi/tagbar'
"UI Plugins
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'bling/vim-bufferline'
Plug 'altercation/vim-colors-solarized'
"Editor plugins
Plug 'Raimondi/delimitMate'
Plug 'scrooloose/nerdcommenter'
Plug 'tpope/vim-sleuth'
Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clangd-completer --go-completer --rust-completer --ts-completer' }
Plug 'rdnetto/ycm-generator', { 'branch': 'stable' }
"Plug 'SirVer/ultisnips'
"Plug 'ludovicchabant/vim-gutentags'
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
Plug 'editorconfig/editorconfig-vim'
Plug 'Chiel92/vim-autoformat'
"Language specific
Plug 'tmhedberg/SimpylFold', { 'for': 'python' }
Plug 'lervag/vimtex', { 'for': 'tex' }
Plug 'vim-pandoc/vim-pandoc'
Plug 'vim-pandoc/vim-pandoc-syntax'
Plug 'yuezk/vim-js'
Plug 'HerringtonDarkholme/yats.vim'
"Plug 'leafgarland/typescript-vim'
Plug 'maxmellon/vim-jsx-pretty'
Plug 'tikhomirov/vim-glsl'
Plug 'vhdirk/vim-cmake'
Plug 'ds26gte/scmindent'
Plug 'udalov/kotlin-vim'
if isdirectory("~/dev/mitscript-syntax")
Plug '~/dev/mitscript-syntax'
endif
"Note taking
Plug 'vimwiki/vimwiki'
Plug 'lukaszkorecki/workflowish'
call plug#end()
set rtp^=/usr/share/vim/vimfiles
syntax on
filetype plugin indent on
autocmd BufRead,BufNewFile *.sage,*.pyx,*.spyx set filetype=python
set backspace=indent,eol,start
set softtabstop=4
set shiftwidth=4
set tabstop=4
set expandtab
set number
set ruler
set showcmd
set errorformat^=%-GIn\ file\ included\ %.%#
set foldmethod=syntax
set conceallevel=2
set list lcs=tab:»\ ,trail:␣,extends:▶,precedes:◀
set undofile
set cindent cinoptions=N-s,g0,j1,(s,m1
set splitright splitbelow
set ignorecase smartcase
nnoremap * /\<<C-R>=expand('<cword>')<CR>\><CR>
nnoremap # ?\<<C-R>=expand('<cword>')<CR>\><CR>
" Map <CR> to :nohl, except in quickfix windows
nnoremap <silent> <expr> <CR> &buftype ==# 'quickfix' ? "\<CR>" : ":nohl\<CR>"
nnoremap gA :%y+<CR>
" Necessary for terminal buffers not to die
"set hidden
autocmd TermOpen * set bufhidden=hide
set title
set nojoinspaces
set mouse=a
set autoread
autocmd BufEnter,FocusGained * checktime
" Update gutters 200 ms
set updatetime=200
cmap w!! w !sudo tee > /dev/null %
let g:python_host_prog = '/usr/bin/python2'
let g:python3_host_prog = '/usr/bin/python3'
let g:ycm_global_ycm_extra_conf = '~/.config/nvim/ycm_global_extra_conf.py'
let g:ycm_autoclose_preview_window_after_insertion = 1
let delimitMate_expand_cr = 1
autocmd FileType tex let b:delimitMate_autoclose = 0
let g:bufferline_rotate=1
let g:bufferline_fixed_index=-1
let g:bufferline_echo = 0
noremap <silent> <Leader>w :call ToggleWrap()<CR>
function WrapOn()
setlocal wrap linebreak
set virtualedit=
setlocal display+=lastline
noremap <buffer> <silent> <Up> g<Up>
noremap <buffer> <silent> <Down> g<Down>
noremap <buffer> <silent> <Home> g<Home>
noremap <buffer> <silent> <End> g<End>
inoremap <buffer> <silent> <Up> <C-o>gk
inoremap <buffer> <silent> <Down> <C-o>gj
inoremap <buffer> <silent> <Home> <C-o>g<Home>
inoremap <buffer> <silent> <End> <C-o>g<End>
endfunction
function WrapOff()
setlocal nowrap
set virtualedit=
silent! nunmap <buffer> <Up>
silent! nunmap <buffer> <Down>
silent! nunmap <buffer> <Home>
silent! nunmap <buffer> <End>
silent! iunmap <buffer> <Up>
silent! iunmap <buffer> <Down>
silent! iunmap <buffer> <Home>
silent! iunmap <buffer> <End>
endfunction
function ToggleWrap()
if &wrap
echo "Wrap OFF"
call WrapOff()
else
echo "Wrap ON"
call WrapOn()
endif
endfunction
call WrapOn()
if $TERM =~ 'rxvt' || $TERM =~'termite'
let g:solarized_visibility='low'
set background=dark
colorscheme solarized
endif
highlight! link SignColumn LineNr
set spellfile=~/.vim/spell/en.utf-8.add
set laststatus=2
let g:airline_powerline_fonts = 1
let g:NERDAltDelims_c = 1
let g:tex_flavor='latex'
if has('nvim')
let g:vimtex_compiler_progname='nvr'
endif
if has('nvim') && !has('nvim-0.2')
let g:vimtex_quickfix_latexlog = {'fix_paths':0}
endif
if executable('zathura')
let g:vimtex_view_method='zathura'
endif
let g:vimtex_quickfix_open_on_warning=0
" lisp/scheme
autocmd filetype lisp,scheme setlocal equalprg=$HOME/.config/nvim/plugged/scmindent/scmindent.rkt
set printoptions+=paper:letter
autocmd BufNewFile,BufReadPost *.md set filetype=markdown
let g:airline#extensions#wordcount#enabled = 1
let g:airline#extensions#wordcount#filetypes = ['help', 'markdown', 'rst', 'org', 'text', 'asciidoc', 'tex', 'mail']
let g:airline#extensions#wordcount#filetypes += ['pandoc']
let g:pandoc#formatting#mode = 'h'
let g:pandoc#formatting#textwidth = 80
let hostfile= $HOME . '/vimrc-' . hostname()
if filereadable(hostfile)
exe 'source ' . hostfile
endif
autocmd StdinReadPre * let s:std_in=1
"autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTreeToggle | endif
nnoremap <silent> <Leader>n :silent! NERDTreeFind<CR>:NERDTreeFocus<CR>
if has('nvim')
" For neovim 0.1.7
"let $NVIM_TUI_ENABLE_CURSOR_SHAPE = 1
" For neovim 0.2
"set guicursor=blah
else
if $TERM =~ '^xterm\|rxvt'
" Insert mode
let &t_SI = "\<Esc>[5 q"
" Replace mode
if has("patch-7.4-687")
let &t_SR = "\<Esc>[3 q"
endif
" Normal mode
let &t_EI = "\<Esc>[2 q"
" 1 or 0 -> blinking block
" 2 -> solid block
" 3 -> blinking underscore
" 4 -> solid underscore
" Recent versions of xterm (282 or above) also support
" 5 -> blinking vertical bar
" 6 -> solid vertical bar
endif
endif
if has('nvim')
tnoremap <S-Esc> <Esc>
tnoremap <Esc> <C-\><C-n>
autocmd TermOpen * startinsert
au FileType fzf tnoremap <buffer> <Esc> <Esc>
endif
" Project root
let g:rootmarkers = ['.projectroot','Makefile','.git','.hg','.svn','.bzr','_darcs','build.xml']
" FZF configs
let $FZF_DEFAULT_COMMAND = 'rg --files'
let g:fzf_command_prefix = 'Fzf'
let g:fzf_buffers_jump = 1
"command! FzfProjectFiles execute 'FzfFiles' projectroot#guess()
nnoremap <silent> <Leader><Space> :FzfFiles<CR>
nnoremap <silent> <Leader>f :FzfRg<CR>
nnoremap <silent> <Leader>a :FzfBuffers<CR>
nnoremap <silent> <Leader>A :FzfWindows<CR>
nnoremap <silent> <Leader>yy :YcmCompleter GoTo<CR>
nnoremap <silent> <Leader>yr :YcmCompleter GoToReferences<CR>
nnoremap <Leader>yd :YcmDiags<CR>
nnoremap <Leader>yf :YcmCompleter FixIt<CR>
nnoremap <Leader>y: :YcmCompleter<Space>
au BufWrite *.go :Autoformat
let g:gutentags_project_root_finder = 'projectroot#guess'
let g:gutentags_generate_on_missing = 0
let g:gutentags_generate_on_new = 0
let g:gutentags_modules = ['ctags', 'cscope']
let g:gutentags_cache_dir = $HOME . '/.cache/gutentags'
let g:gutentags_ctags_tagfile = '.vimtags'
set tags=./.vimtags;,.vimtags,./tags;,tags
let g:cmake_export_compile_commands = 1
set cscopetag
let g:ycm_enable_diagnostic_signs=0
" Thanks to http://superuser.com/questions/558876/how-can-i-make-the-sign-column-show-up-all-the-time-even-if-no-signs-have-been-a
"autocmd BufEnter * sign define dummy
"autocmd BufEnter * execute 'sign place 9999 line=1 name=dummy buffer=' . bufnr('')
com -range=% -nargs=1 P exe "<line1>,<line2>!".<q-args> | y | sil u | echom @"
com -range=% Hash <line1>,<line2>P cpp -P -fpreprocessed | tr -d '[:space:]' | md5sum
au FileType cpp com! -buffer -range=% Hash <line1>,<line2>P cpp -P -fpreprocessed | tr -d '[:space:]' | md5sum
nmap <leader>sp :call <SID>SynStack()<CR>
function! <SID>SynStack()
if !exists("*synstack")
return
endif
echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
endfunc