VIM Scripts: http://www.vim.org/scripts/script.php?script_id=2620
Repository: https://github.com/Shougo/neocomplcache
배포되는 형태는 플러그인 및 관련 디렉토리가 패키징 된 형태이기 때문에 여타 Vim 플러그인을 설치할 때 처럼 내용을 몽땅 ~/.vim/ 에 복사하면 된다.
실행에 필요한 설정은 한 줄이면 된다.
let g:neocomplcache_enable_at_startup = 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 " Use camel case completion. let g:neocomplcache_enable_camel_case_completion = 1 " Use underbar completion. let g:neocomplcache_enable_underbar_completion = 1 " Set minimum syntax keyword length. let g:neocomplcache_min_syntax_length = 3 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. imap적절히 필요없는 설정은 덜어내고 바꾸고 싶은 것이 있다면 바꾸면 될 것이다. 개인적으로는 위 기본 설정 만으로도 만족스러운 사용이 가능했다.(neocomplcache_snippets_expand) smap (neocomplcache_snippets_expand) inoremap neocomplcache#undo_completion() inoremap neocomplcache#complete_common_string() " SuperTab like snippets behavior. "imap neocomplcache#sources#snippets_complete#expandable() ? "\ (neocomplcache_snippets_expand)" : pumvisible() ? "\ " : "\ " " Recommended key-mappings. " : close popup and save indent. inoremap neocomplcache#smart_close_popup() . "\ " " : completion. inoremap pumvisible() ? "\ " : "\ " " , : close popup and delete backword char. inoremap neocomplcache#smart_close_popup()."\ " inoremap neocomplcache#smart_close_popup()."\ " inoremap neocomplcache#close_popup() inoremap neocomplcache#cancel_popup() " AutoComplPop like behavior. "let g:neocomplcache_enable_auto_select = 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() ? "\ " : "\ " "inoremap neocomplcache#smart_close_popup() . "\ " " 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.ruby = '[^. *\t]\.\w*\|\h\w*::' "autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete let g:neocomplcache_omni_patterns.php = '[^. \t]->\h\w*\|\h\w*::' let g:neocomplcache_omni_patterns.c = '\%(\.\|->\)\h\w*' let g:neocomplcache_omni_patterns.cpp = '\h\w*\%(\.\|->\)\h\w*\|\h\w*::'
막강한 기능을 엿볼 수 있는 하나의 스크린 샷. python 파일 편집을 시작해서 'im'을 입력했을 뿐이다. Vim의 자동완성 기능 그 자체만 썼다면 여기서 아무것도 나오지 않았을 가능성이 높은데 (실제로 다른 파일을 열어서 인덱싱이 되어 있다면 import가 자동완성 될 수도 있다) neocomplcache는 알아서 이 편집 중인 파일에 맞게 자동완성 정보를 미리 보유하고 있다.
저 수동을 자동으로 바꾸어주는 설정은 어디에 입력하나요?
답글삭제vim 설정은 당연히 ~/.vimrc 파일이죠 ^^; 윈도우의 경우라면 vim이 설치된 디렉토리에서 _vimrc 파일을 찾아보면 될겁니다.
답글삭제좋은 글 감사합니다. 현재 neocomplcache를 설치해봤는데요..
답글삭제object c의 omni를 활성화하려면 어떻게해야하나요?
bro// vim으로 objC 코딩을 하질 않아서 잘 모르겠습니다. ^^;
답글삭제