comparison vimrc @ 90:3fdc762fe6bb

Improve neocomplete behaviour
author zegervdv <zegervdv@me.com>
date Sun, 03 Aug 2014 18:37:06 +0200
parents aefa231684d9
children 97744720e080
comparison
equal deleted inserted replaced
89:016c657f0c31 90:3fdc762fe6bb
422 let g:ctrl_map = '<c-p>' 422 let g:ctrl_map = '<c-p>'
423 let g:ctrl_cmd = 'CtrlP' 423 let g:ctrl_cmd = 'CtrlP'
424 424
425 let g:ctrlp_working_path=0 425 let g:ctrlp_working_path=0
426 nnoremap <C-o> :CtrlPBuffer<CR> 426 nnoremap <C-o> :CtrlPBuffer<CR>
427 " map <C-m> :CtrlPTag<CR> 427
428 let g:ctrlp_extensions = ['tag']
428 429
429 if executable('ag') 430 if executable('ag')
430 let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' 431 let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
431 let g:ctrlp_use_caching = 0 432 let g:ctrlp_use_caching = 0
432 endif 433 endif
444 " }}} 445 " }}}
445 " tComment {{{ 446 " tComment {{{
446 nmap <leader>c <C-_><C-_> 447 nmap <leader>c <C-_><C-_>
447 " }}} 448 " }}}
448 " Neo Complete {{{ 449 " Neo Complete {{{
449 let g:acp_enableAtStartup = 0 450 " Taken from https://github.com/spf13/spf13-vim/blob/3.0/.vimrc
450 let g:neocomplete#enable_at_startup = 1 451 let g:acp_enableAtStartup = 0
451 let g:neocomplete#enable_smart_case = 1 452 let g:neocomplete#enable_at_startup = 1
452 let g:neocomplete#enable_fuzzy_completion = 1 453 let g:neocomplete#enable_smart_case = 1
453 let g:neocomplete#sources#syntax#min_keyword_length = 3 454 let g:neocomplete#enable_auto_delimiter = 1
454 let g:neocomplete#lock_buffer_name_pattern = '\*ku\*' 455 let g:neocomplete#max_list = 15
455 456 let g:neocomplete#force_overwrite_completefunc = 1
456 " Define dictionary. 457
457 let g:neocomplete#sources#dictionary#dictionaries = { 458
458 \ 'default' : '', 459 " Define dictionary.
459 \ 'vimshell' : $HOME.'/.vimshell_hist', 460 let g:neocomplete#sources#dictionary#dictionaries = {
460 \ 'scheme' : $HOME.'/.gosh_completions' 461 \ 'default' : '',
461 \ } 462 \ 'vimshell' : $HOME.'/.vimshell_hist',
462 463 \ 'scheme' : $HOME.'/.gosh_completions'
463 " Define keyword. 464 \ }
464 if !exists('g:neocomplete#keyword_patterns') 465
465 let g:neocomplete#keyword_patterns = {} 466 " Define keyword.
466 endif 467 if !exists('g:neocomplete#keyword_patterns')
467 468 let g:neocomplete#keyword_patterns = {}
468 let g:neocomplete#keyword_patterns['default'] = '\h\w*' 469 endif
469 " Recommended key-mappings. 470 let g:neocomplete#keyword_patterns['default'] = '\h\w*'
470 " <CR>: close popup and save indent. 471
471 inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR> 472 " Plugin key-mappings {
472 function! s:my_cr_function() 473 " These two lines conflict with the default digraph mapping of <C-K>
473 " return neocomplete#close_popup() . "\<CR>" 474 " <C-k> Complete Snippet
474 " For no inserting <CR> key. 475 " <C-k> Jump to next snippet point
475 return pumvisible() ? neocomplete#close_popup() : "\<CR>" 476 imap <silent><expr><C-k> neosnippet#expandable() ?
476 endfunction 477 \ "\<Plug>(neosnippet_expand_or_jump)" : (pumvisible() ?
477 " <TAB>: completion. 478 \ "\<C-e>" : "\<Plug>(neosnippet_expand_or_jump)")
478 inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" 479 smap <TAB> <Right><Plug>(neosnippet_jump_or_expand)
479 " <C-h>, <BS>: close popup and delete backword char. 480
480 inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>" 481 inoremap <expr><C-g> neocomplete#undo_completion()
481 482 inoremap <expr><C-l> neocomplete#complete_common_string()
482 if !exists('g:neocomplete#force_omni_input_patterns') 483 "inoremap <expr><CR> neocomplete#complete_common_string()
483 let g:neocomplete#force_omni_input_patterns = {} 484
484 endif 485 " <CR>: close popup
485 let g:neocomplete#force_overwrite_completefunc = 1 486 " <s-CR>: close popup and save indent.
486 " let g:neocomplete#force_omni_input_patterns.c = 487 inoremap <expr><s-CR> pumvisible() ? neocomplete#smart_close_popup()"\<CR>" : "\<CR>"
487 " \ '[^.[:digit:] *\t]\%(\.\|->\)\w*' 488
488 let g:neocomplete#force_omni_input_patterns.cpp = 489 function! CleverCr()
489 \ '[^.[:digit:] *\t]\%(\.\|->\)\w*\|\h\w*::\w*' 490 if pumvisible()
490 let g:neocomplete#force_omni_input_patterns.objc = 491 if neosnippet#expandable()
491 \ '[^.[:digit:] *\t]\%(\.\|->\)\w*' 492 let exp = "\<Plug>(neosnippet_expand)"
492 let g:neocomplete#force_omni_input_patterns.objcpp = 493 return exp . neocomplete#smart_close_popup()
493 \ '[^.[:digit:] *\t]\%(\.\|->\)\w*\|\h\w*::\w*' 494 else
494 495 return neocomplete#smart_close_popup()
495 let g:marching_enable_neocomplete = 1 496 endif
496 497 else
497 autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS 498 return "\<CR>"
498 autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags 499 endif
499 autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS 500 endfunction
500 autocmd FileType python setlocal omnifunc=pythoncomplete#Complete 501
501 autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags 502 " <CR> close popup and save indent or expand snippet
502 autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete 503 imap <expr> <CR> CleverCr()
503 if !exists('g:neocomplete#sources#omni#input_patterns') 504 " <C-h>, <BS>: close popup and delete backword char.
504 let g:neocomplete#sources#omni#input_patterns = {} 505 inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"
505 endif 506 inoremap <expr><C-y> neocomplete#smart_close_popup()
506 507
507 " autocmd FileType c NeoCompleteTagMakeCache 508 " <TAB>: completion.
509 inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
510 inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<TAB>"
511
512 " Courtesy of Matteo Cavalleri
513
514 function! CleverTab()
515 if pumvisible()
516 return "\<C-n>"
517 endif
518 let substr = strpart(getline('.'), 0, col('.') - 1)
519 let substr = matchstr(substr, '[^ \t]*$')
520 if strlen(substr) == 0
521 " nothing to match on empty string
522 return "\<Tab>"
523 else
524 " existing text matching
525 if neosnippet#expandable_or_jumpable()
526 return "\<Plug>(neosnippet_expand_or_jump)"
527 else
528 return neocomplete#start_manual_complete()
529 endif
530 endif
531 endfunction
532
533 imap <expr> <Tab> CleverTab()
534 " }
535
536 " Enable heavy omni completion.
537 if !exists('g:neocomplete#sources#omni#input_patterns')
538 let g:neocomplete#sources#omni#input_patterns = {}
539 endif
540 let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::'
541 let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::'
542 let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)'
543 let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::'
544 let g:neocomplete#sources#omni#input_patterns.ruby = '[^. *\t]\.\h\w*\|\h\w*::'
545 " }
508 " }}} 546 " }}}
509 " Neo Snippets {{{ 547 " Neo Snippets {{{
510 imap <C-k> <Plug>(neosnippet_expand_or_jump) 548 imap <C-k> <Plug>(neosnippet_expand_or_jump)
511 smap <C-k> <Plug>(neosnippet_expand_or_jump) 549 smap <C-k> <Plug>(neosnippet_expand_or_jump)
512 xmap <C-k> <Plug>(neosnippet_expand_target) 550 xmap <C-k> <Plug>(neosnippet_expand_target)
520 558
521 559
522 imap <expr><TAB> neosnippet#expandable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>" 560 imap <expr><TAB> neosnippet#expandable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>"
523 imap <expr><C-k> neosnippet#expandable_or_jumpable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>" 561 imap <expr><C-k> neosnippet#expandable_or_jumpable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>"
524 smap <expr><TAB> neosnippet#expandable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>" 562 smap <expr><TAB> neosnippet#expandable() == 1 ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>"
525 let g:neocomplete#sources#omni#input_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::' 563 " let g:neocomplete#sources#omni#input_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::'
526 564
527 let g:neosnippet#snippets_directory='~/.vim/snippets' 565 let g:neosnippet#snippets_directory='~/.vim/snippets'
528 " }}} 566 " }}}
529 " Tabular {{{ 567 " Tabular {{{
530 inoremap <silent> <Bar> <Bar><Esc>:call <SID>align()<CR>a 568 inoremap <silent> <Bar> <Bar><Esc>:call <SID>align()<CR>a