Mercurial > dotfiles.old
annotate vimrc @ 29:599325301323
Configure neocomplete
author | zegervdv <zegervdv@me.com> |
---|---|
date | Tue, 01 Apr 2014 20:46:24 +0200 |
parents | e7be1e1656d1 |
children | 2da8d8daa033 |
rev | line source |
---|---|
27 | 1 " vim:fdm=marker |
2 | |
3 " General Settings {{{ | |
0 | 4 set nocompatible |
5 set laststatus=2 | |
6 set noshowmode | |
7 | |
8 execute pathogen#infect() | |
9 | |
10 set backspace=2 | |
11 set autowrite | |
12 | |
13 set vb | |
14 set guioptions-=r | |
15 set guioptions-=l | |
16 set guioptions-=R | |
17 set guioptions-=L | |
18 | |
19 syntax on | |
20 set expandtab | |
21 set number | |
22 set ruler | |
23 set nocursorline | |
24 set showmatch | |
25 set title | |
26 set wrap | |
27 set wrapmargin=2 | |
28 set linebreak | |
29 set lbr | |
30 set tabstop=2 shiftwidth=2 | |
21
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
31 if has("gui_running") |
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
32 set background=dark |
22 | 33 color hybrid |
21
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
34 else |
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
35 color hybrid |
bf5c5093bad9
Add Base16-Ocean-Dark colorscheme
zegervdv <zegervdv@me.com>
parents:
19
diff
changeset
|
36 endif |
0 | 37 set guifont=Inconsolata\ for\ Powerline:h12 |
38 set autowrite | |
39 set hidden | |
40 set hlsearch | |
41 set incsearch | |
42 set ignorecase | |
43 set smartcase | |
44 set smartindent | |
45 set autoindent | |
46 set scrolloff=4 | |
47 set textwidth=80 | |
48 | |
49 set history=100 | |
50 set wildmenu | |
19 | 51 set wildmode=full |
0 | 52 |
53 set diffopt+=iwhite | |
54 | |
55 set formatoptions= | |
56 set formatoptions+=c " Format comments | |
57 set formatoptions+=r " Continue comments by default | |
58 set formatoptions+=o " Make comment when using o or O from comment line | |
59 set formatoptions+=q " Format comments with gq | |
60 set formatoptions+=n " Recognize numbered lists | |
61 set formatoptions+=2 " Use indent from 2nd line of a paragraph | |
62 set formatoptions+=l " Don't break lines that are already long | |
63 set formatoptions+=1 " Break before 1-letter words | |
64 | |
65 set splitright | |
66 set virtualedit=block | |
67 set conceallevel=0 | |
68 | |
69 set cryptmethod=blowfish | |
70 | |
71 filetype plugin indent on | |
72 autocmd FileType ruby set tabstop=2|set shiftwidth=2 | |
73 | |
74 set clipboard=unnamed | |
75 | |
16 | 76 set viminfo='10,\"100,:20,%,n~/.viminfo |
27 | 77 " }}} |
78 " Custom remaps and tricks {{{ | |
16 | 79 " When editing a file, always jump to the last known cursor position. |
80 " Don't do it for commit messages, when the position is invalid, or when | |
81 " inside an event handler (happens when dropping a file on gvim). | |
82 autocmd BufReadPost * | |
83 \ if &ft != 'gitcommit' && line("'\"") > 0 && line("'\"") <= line("$") | | |
84 \ exe "normal g`\"" | | |
85 \ endif | |
0 | 86 |
87 map <Leader>d :bp<bar>sp<bar>bn<bar>bd<CR> | |
88 | |
89 " See long lines as line breaks | |
90 map j gj | |
91 map k gk | |
92 | |
93 " remap tag-search to better place | |
94 nmap <C-$> <C-]> | |
95 | |
96 " Jump to end of line in insert mode | |
97 inoremap <C-e> <C-o>A | |
98 | |
99 " Jump one character in insert mode | |
100 inoremap <C-f> <C-o>l | |
101 | |
4
050d4d8c6796
Vim: use double space to alternate files
zegervdv <zegervdv@me.com>
parents:
3
diff
changeset
|
102 " Switch between the last two files |
050d4d8c6796
Vim: use double space to alternate files
zegervdv <zegervdv@me.com>
parents:
3
diff
changeset
|
103 nnoremap <SPACE><SPACE> <C-^> |
050d4d8c6796
Vim: use double space to alternate files
zegervdv <zegervdv@me.com>
parents:
3
diff
changeset
|
104 |
0 | 105 " Very Magic search patterns |
106 nmap / /\v | |
107 cmap s/ s/\v | |
108 | |
109 | |
110 inoremap £ \ | |
111 | |
4
050d4d8c6796
Vim: use double space to alternate files
zegervdv <zegervdv@me.com>
parents:
3
diff
changeset
|
112 " nnoremap <SPACE> <C-e> |
0 | 113 |
24 | 114 |
0 | 115 nnoremap <silent> n n:call HLNext(0.4)<cr> |
116 nnoremap <silent> N N:call HLNext(0.4)<cr> | |
117 | |
118 function! HLNext (blinktime) | |
119 highlight WhiteOnRed ctermfg=white ctermbg=red guifg=white guibg=red | |
120 let [bufnum, lnum, col, off] = getpos('.') | |
121 let matchlen = strlen(matchstr(strpart(getline('.'),col-1),@/)) | |
122 let target_pat = '\c\%#'.@/ | |
123 let ring = matchadd('WhiteOnRed', target_pat, 101) | |
124 redraw | |
125 exec 'sleep ' . float2nr(a:blinktime * 1000) . 'm' | |
126 call matchdelete(ring) | |
127 redraw | |
128 endfunction | |
129 | |
130 " Swap v and CTRL-V | |
131 nnoremap v <C-V> | |
132 nnoremap <C-V> v | |
133 | |
134 vnoremap v <C-V> | |
135 vnoremap <C-V> v | |
136 | |
137 " Use backspace as delete in visual mode | |
138 vmap <BS> x | |
139 | |
140 " Keep selection when shifting | |
141 vmap <expr> > KeepVisualSelection(">") | |
142 vmap <expr> < KeepVisualSelection("<") | |
143 | |
144 function! KeepVisualSelection(cmd) | |
145 set nosmartindent | |
146 if mode() ==# "V" | |
147 return a:cmd . ":set smartindent\<CR>gv" | |
148 else | |
149 return a:cmd . ":set smartindent\<CR>" | |
150 endif | |
151 endfunction | |
152 | |
153 let g:indent_guides_auto_colors = 0 | |
154 let g:indent_guides_guide_size = 1 | |
155 highlight IndentGuidesEven guibg=background | |
156 highlight IndentGuidesOdd guibg='#282a2e' | |
157 | |
158 " Show trailing whitespaces | |
159 " exec "set listchars=tab:\uBB\uBB,trail:\uB7,nbsp:~" | |
160 " set list | |
161 | |
27 | 162 " }}} |
163 " Plugin Settings {{{ | |
0 | 164 " Vim Math plugin; make simple calculations |
165 vmap <expr> ++ VMATH_YankAndAnalyse() | |
166 nmap ++ vip++ | |
167 | |
168 " Airline configuration | |
169 let g:airline_inactive_collapse=0 | |
170 let g:airline_powerline_fonts=1 | |
171 | |
172 let g:airline_left_sep = '' | |
173 let g:airline_right_sep = '' | |
174 | |
175 let g:airline_theme = 'tomorrow' | |
176 | |
177 let g:airline#extensions#syntastic#enabled = 0 | |
178 | |
179 nnoremap <F5> :buffers<CR>:buffer<Space> | |
180 noremap <C-TAB> <C-w><C-w> | |
181 | |
182 " Set leader to , | |
183 let mapleader = "," | |
184 | |
185 " Custom key mappings | |
186 | |
187 let g:yankring_replace_n_pkey = 'cp' | |
188 | |
189 " Nerdtree | |
190 map <F2> :NERDTreeToggle<CR> | |
191 map <Leader>e :NERDTreeToggle<CR> | |
192 let NERDTreeIgnore = ['\.aux$', '\.log$', '\.out$'] | |
193 | |
194 " Vim - Rspec | |
195 map <leader>t :call RunCurrentSpecFile()<CR> | |
196 map <leader>s :call RunNearestSpec()<CR> | |
197 map <leader>l :call RunLastSpec()<CR> | |
198 map <leader>r :call RunAllSpecs()<CR> | |
199 | |
200 " Cucumber | |
201 map <leader>f :call RunAllFeatures()<CR> | |
202 map <leader>k :call RunCurrentFeature()<CR> | |
203 | |
204 " Autocomplete | |
205 inoremap <C-Space> <C-N> | |
206 | |
207 " Single char insertion | |
208 " nmap <Space> i_<Esc>r | |
209 | |
210 " Clear highlight | |
211 nnoremap <silent> <leader>n :nohlsearch<CR> | |
212 | |
213 " ctrl p - Fuzzy file finder | |
214 noremap <C-p> :CtrlP<CR> | |
215 let g:ctrl_map = '<c-p>' | |
216 let g:ctrl_cmd = 'CtrlP' | |
217 | |
218 map <C-l> :CtrlPBuffer<CR> | |
219 map <C-m> :CtrlPTag<CR> | |
220 | |
5 | 221 if executable('ag') |
222 let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' | |
223 let g:ctrlp_use_caching = 0 | |
224 endif | |
225 | |
0 | 226 " ctrl p - Commands |
227 map <leader>p :CtrlPCmdPalette<CR> | |
228 | |
229 " Markdown | |
230 let g:vim_markdown_folding_disabled=1 | |
231 | |
232 " tComment remap | |
233 nmap <leader>c <C-_><C-_> | |
234 | |
235 " Neo Complete | |
29 | 236 let g:acp_enableAtStartup = 0 |
237 let g:neocomplete#enable_at_startup = 1 | |
238 let g:neocomplete#enable_smart_case = 1 | |
239 let g:neocomplete#enable_fuzzy_completion = 1 | |
240 let g:neocomplete#sources#syntax#min_keyword_length = 3 | |
241 let g:neocomplete#lock_buffer_name_pattern = '\*ku\*' | |
0 | 242 |
243 " Define dictionary. | |
244 let g:neocomplete#sources#dictionary#dictionaries = { | |
245 \ 'default' : '', | |
246 \ 'vimshell' : $HOME.'/.vimshell_hist', | |
247 \ 'scheme' : $HOME.'/.gosh_completions' | |
248 \ } | |
27 | 249 |
250 " Define keyword. | |
251 if !exists('g:neocomplete#keyword_patterns') | |
252 let g:neocomplete#keyword_patterns = {} | |
253 endif | |
254 | |
255 let g:neocomplete#keyword_patterns['default'] = '\h\w*' | |
0 | 256 " Recommended key-mappings. |
257 " <CR>: close popup and save indent. | |
258 inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR> | |
259 function! s:my_cr_function() | |
29 | 260 " return neocomplete#close_popup() . "\<CR>" |
0 | 261 " For no inserting <CR> key. |
29 | 262 return pumvisible() ? neocomplete#close_popup() : "\<CR>" |
0 | 263 endfunction |
264 " <TAB>: completion. | |
265 inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" | |
266 " <C-h>, <BS>: close popup and delete backword char. | |
267 inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>" | |
268 | |
28 | 269 let s:clang_library_path='/Library/Developer/CommandLineTools/usr/lib' |
270 if isdirectory(s:clang_library_path) | |
271 let g:clang_library_path=s:clang_library_path | |
272 endif | |
273 if !exists('g:neocomplete#force_omni_input_patterns') | |
274 let g:neocomplete#force_omni_input_patterns = {} | |
275 endif | |
276 let g:neocomplete#force_overwrite_completefunc = 1 | |
277 let g:neocomplete#force_omni_input_patterns.c = | |
278 \ '[^.[:digit:] *\t]\%(\.\|->\)\w*' | |
279 let g:neocomplete#force_omni_input_patterns.cpp = | |
280 \ '[^.[:digit:] *\t]\%(\.\|->\)\w*\|\h\w*::\w*' | |
281 let g:neocomplete#force_omni_input_patterns.objc = | |
282 \ '[^.[:digit:] *\t]\%(\.\|->\)\w*' | |
283 let g:neocomplete#force_omni_input_patterns.objcpp = | |
284 \ '[^.[:digit:] *\t]\%(\.\|->\)\w*\|\h\w*::\w*' | |
285 let g:clang_complete_auto = 0 | |
286 let g:clang_auto_select = 0 | |
29 | 287 let g:clang_use_library = 1 |
28 | 288 |
0 | 289 autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS |
290 autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags | |
291 autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS | |
292 autocmd FileType python setlocal omnifunc=pythoncomplete#Complete | |
293 autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags | |
294 autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete | |
295 if !exists('g:neocomplete#sources#omni#input_patterns') | |
296 let g:neocomplete#sources#omni#input_patterns = {} | |
297 endif | |
298 | |
26 | 299 " autocmd FileType c NeoCompleteTagMakeCache |
24 | 300 |
0 | 301 " Neo Snippets |
302 imap <C-k> <Plug>(neosnippet_expand_or_jump) | |
303 smap <C-k> <Plug>(neosnippet_expand_or_jump) | |
304 xmap <C-k> <Plug>(neosnippet_expand_target) | |
305 | |
23
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
306 " imap <expr><TAB> neosnippet#expandable_or_jumpable() ? |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
307 " \ "\<Plug>(neosnippet_expand_or_jump)" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
308 " \: pumvisible() ? "\<C-n>" : "\<TAB>" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
309 " smap <expr><TAB> neosnippet#expandable_or_jumpable() ? |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
310 " \ "\<Plug>(neosnippet_expand_or_jump)" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
311 " \: "\<TAB>" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
312 |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
313 |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
314 imap <expr><TAB> neosnippet#expandable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
315 imap <expr><C-k> neosnippet#expandable_or_jumpable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>" |
4112c6eb9f47
Correct tab completion with snippets
zegervdv <zegervdv@me.com>
parents:
22
diff
changeset
|
316 smap <expr><TAB> neosnippet#expandable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>" |
0 | 317 let g:neocomplete#sources#omni#input_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::' |
318 | |
319 let g:neosnippet#snippets_directory='~/.vim/snippets' | |
320 | |
321 " Tabular | |
322 inoremap <silent> <Bar> <Bar><Esc>:call <SID>align()<CR>a | |
323 | |
324 function! s:align() | |
325 let p = '^\s*|\s.*\s|\s*$' | |
326 if exists(':Tabularize') && getline('.') =~# '^\s*|' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p) | |
327 let column = strlen(substitute(getline('.')[0:col('.')],'[^|]','','g')) | |
328 let position = strlen(matchstr(getline('.')[0:col('.')],'.*|\s*\zs.*')) | |
329 Tabularize/|/l1 | |
330 normal! 0 | |
331 call search(repeat('[^|]*|',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) | |
332 endif | |
333 endfunction | |
334 | |
335 " Align Migration files | |
336 vmap <c-a> :Tabularize /:/l1l0l0<CR> | |
337 | |
338 nmap <Leader>a= :Tabularize /=<CR> | |
339 vmap <Leader>a= :Tabularize /=<CR> | |
340 nmap <Leader>a=> :Tabularize /=><CR> | |
341 vmap <Leader>a=> :Tabularize /=><CR> | |
342 nmap <Leader>a: :Tabularize /:\zs/l0l1<CR> | |
343 vmap <Leader>a: :Tabularize /:\zs/l0l1<CR> | |
344 nmap <Leader>a, :Tabularize /,\zs/l0l1<CR> | |
345 vmap <Leader>a, :Tabularize /,\zs/l0l1<CR> | |
346 vmap <Leader>a- :Tabularize /-<CR> | |
347 | |
348 | |
349 | |
350 augroup markdown | |
351 au! | |
352 au BufNewFile,BufRead *.md,*.markdown setlocal filetype=ghmarkdown | |
353 augroup END | |
354 | |
355 | |
356 " Latex plugin | |
357 au BufNewFile,BufRead,BufEnter *.tex setlocal spell spelllang=en_gb | |
358 au BufNewFile,BufRead,BufEnter *.tex setlocal textwidth=0 | |
359 au BufNewFile,BufRead,BufEnter *.txt setlocal spell spelllang=en_gb | |
360 au BufNewFile,BufRead,BufEnter *.txt setlocal textwidth=0 | |
361 | |
362 let g:tex_conseal = "" | |
363 | |
364 let g:tex_comment_nospell=1 | |
365 let g:Tex_DefaultTargetFormat = 'pdf' | |
366 let g:tex_flavor = 'latex' | |
367 let g:Tex_TreatMacViewerAsUNIX = 1 | |
368 let g:Tex_ExecuterUNIXViewerInForeground = 1 | |
369 let g:Tex_ViewRule_pdf = 'open -a Preview' | |
370 let g:Tex_ViewRule_ps = 'open -a Preview' | |
371 | |
372 " Tagbar mapping | |
373 nmap <F8> :TagbarToggle<CR> | |
374 | |
375 " The silver searcher | |
376 " let g:ackprg = 'ag --nogroup --nocolor --column' | |
377 | |
378 " Multiple cursor insert | |
379 let g:multi_cursor_next_key='<C-n>' | |
380 let g:multi_cursor_prev_key='<C-m>' | |
381 let g:multi_cursor_skip_key='<C-x>' | |
382 let g:multi_cursor_quit_key='<Esc>' | |
383 | |
384 " Gundo tree | |
385 nnoremap <leader>u :GundoToggle<CR> | |
386 | |
387 " Yank ring | |
388 nnoremap <silent> <leader>y :YRShow<CR> | |
389 | |
13 | 390 " Open pdf in Preview |
0 | 391 let g:livepreview_previewer = 'open -a Preview' |
3
44d3af8838f8
Add support for local zshrc and vimrc files
zegervdv <zegervdv@me.com>
parents:
0
diff
changeset
|
392 |
13 | 393 |
394 " Smalls | |
395 nmap s <Plug>(smalls) | |
396 omap s <Plug>(smalls) | |
397 xmap s <Plug>(smalls) | |
398 | |
14
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
399 " Textmanip |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
400 xmap <C-j> <Plug>(textmanip-move-down) |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
401 xmap <C-k> <Plug>(textmanip-move-up) |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
402 xmap <C-h> <Plug>(textmanip-move-left) |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
403 xmap <C-l> <Plug>(textmanip-move-right) |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
404 xmap <F10> <Plug>(textmanip-toggle-mode) |
09c60bc0fc38
Add vim-textmanip for visual block dragging
zegervdv <zegervdv@me.com>
parents:
13
diff
changeset
|
405 |
27 | 406 let g:startify_session_dir = "~/.vim/sessions" |
407 " }}} | |
408 | |
13 | 409 " Load local vimrc |
3
44d3af8838f8
Add support for local zshrc and vimrc files
zegervdv <zegervdv@me.com>
parents:
0
diff
changeset
|
410 if filereadable($HOME . "/.vimrc.local") |
44d3af8838f8
Add support for local zshrc and vimrc files
zegervdv <zegervdv@me.com>
parents:
0
diff
changeset
|
411 source ~/.vimrc.local |
44d3af8838f8
Add support for local zshrc and vimrc files
zegervdv <zegervdv@me.com>
parents:
0
diff
changeset
|
412 endif |
24 | 413 |
414 nnoremap <Enter> o<ESC> |