X-Git-Url: https://git.cyclocoop.org/?p=tool%2Fhledger.git;a=blobdiff_plain;f=vim%2Fconfig%2Fneocomplcache.vim;fp=vim%2Fconfig%2Fneocomplcache.vim;h=bbe997558f03b2bac0547a0d6e5471533ffa9c6a;hp=0000000000000000000000000000000000000000;hb=707b0a621cd3c97d5d7e22e855272b3f865a2d56;hpb=30e9b83c521f5149836e1ef0b544676370721efe diff --git a/vim/config/neocomplcache.vim b/vim/config/neocomplcache.vim new file mode 100644 index 0000000..bbe9975 --- /dev/null +++ b/vim/config/neocomplcache.vim @@ -0,0 +1,107 @@ +" Disable automatic completion popup +let g:neocomplcache_disable_auto_complete = 1 +" Disable AutoComplPop. +let g:acp_enableAtStartup = 0 +" Use neocomplcache. +let g:neocomplcache_enable_at_startup = 1 +" Use smartcase. +let g:neocomplcache_enable_smart_case = 1 +" Set minimum syntax keyword length. +let g:neocomplcache_min_syntax_length = 2 +let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*' + +" Define dictionary. +let g:neocomplcache_dictionary_filetype_lists = { + \ 'default' : '', + \ 'vimshell' : $HOME.'/.vimshell_hist', + \ 'scheme' : $HOME.'/.gosh_completions' + \ } + +" Define keyword. +if !exists('g:neocomplcache_keyword_patterns') + let g:neocomplcache_keyword_patterns = {} +endif +let g:neocomplcache_keyword_patterns['default'] = '\h\w*' + +" Plugin key-mappings. +inoremap neocomplcache#undo_completion() +inoremap neocomplcache#complete_common_string() + +" Complete with . +"inoremap pumvisible() ? "\" : check_back_space() ? "\" : "\\" +inoremap pumvisible() ? neocomplcache#complete_common_string() : check_back_space() ? "\" : "\\" + +function! s:check_back_space() + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~ '\s' + endfunction + +" Choose candidate with . +inoremap neocomplcache#smart_close_popup() . “\” + +" Recommended key-mappings. +" : close popup and save indent. +inoremap =my_cr_function() +function! s:my_cr_function() + return neocomplcache#smart_close_popup() . "\" + " For no inserting key. + "return pumvisible() ? neocomplcache#close_popup() : "\" + endfunction +" : completion. +"inoremap pumvisible() ? neocomplcache#complete_common_string() : "\" +"inoremap neocomplcache#complete_common_string() +" , : close popup and delete backword char. +inoremap neocomplcache#smart_close_popup()."\" +inoremap neocomplcache#smart_close_popup()."\" +inoremap neocomplcache#close_popup() +inoremap neocomplcache#cancel_popup() +" Close popup by . +inoremap pumvisible() ? neocomplcache#close_popup() : "\" + +" Sort choices by bytes +call neocomplcache#custom_source('_', 'sorters', ['sorter_bytes']) + +" For cursor moving in insert mode(Not recommended) +"inoremap neocomplcache#close_popup() . "\" +"inoremap neocomplcache#close_popup() . "\" +"inoremap neocomplcache#close_popup() . "\" +"inoremap neocomplcache#close_popup() . "\" +" Or set this. +"let g:neocomplcache_enable_cursor_hold_i = 1 +" Or set this. +"let g:neocomplcache_enable_insert_char_pre = 1 + +" AutoComplPop like behavior. +"let g:neocomplcache_enable_auto_select = 1 + +" Enable heavy features. +" Use camel case completion. +"let g:neocomplcache_enable_camel_case_completion = 1 +" Use underbar completion. +let g:neocomplcache_enable_underbar_completion = 1 + +" Shell like behavior(not recommended). +"set completeopt+=longest +"let g:neocomplcache_enable_auto_select = 1 +"let g:neocomplcache_disable_auto_complete = 1 +"inoremap pumvisible() ? "\" : "\\" + +" Enable omni completion. +autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS +autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags +autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS +autocmd FileType python setlocal omnifunc=pythoncomplete#Complete +autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags + +" Enable heavy omni completion. +if !exists('g:neocomplcache_omni_patterns') + let g:neocomplcache_omni_patterns = {} +endif +let g:neocomplcache_omni_patterns.php = '[^. \t]->\h\w*\|\h\w*::' +let g:neocomplcache_omni_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)' +let g:neocomplcache_omni_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::' + +" For perlomni.vim setting. +" https://github.com/c9s/perlomni.vim +let g:neocomplcache_omni_patterns.perl = '\h\w*->\h\w*\|\h\w*::' +runtime plugin/neocomplcache.vim