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 코딩을 하질 않아서 잘 모르겠습니다. ^^;
답글삭제