Mercurial > dotfiles.old
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 |