vim에서 Perl의 코드 완성을 활성화하는 방법이 있나요?
문제
놀랍게도 vim에 능숙해지면 Eclipse와 같은 표준 IDE보다 훨씬 빠르게 코딩할 수 있습니다.하지만 제가 정말 그리워하는 것 중 하나는 코드 완성입니다. 특히 긴 변수 이름과 함수의 경우 더욱 그렇습니다.
vim에서 Perl의 코드 완성을 활성화하는 방법이 있나요?
해결책
Ctrl 키-피 (이전 일치 항목 가져오기) 및 Ctrl 키-N (다음 일치 항목 가져오기)는 일종의 의사 코드 완성입니다.그들은 기본적으로 파일을 검색합니다(뒤로 Ctrl 키-피, 다음에 대한 전달 Ctrl 키-N) 입력 중인 내용으로 시작하는 단어를 편집하고(열린 버퍼와 TAG 파일에서 TAGS를 사용하는 경우) 드롭다운 목록을 추가합니다.Intellisense가 아니더라도 변수와 함수 이름에 대해 놀랍게도 잘 작동합니다.일반적으로 내가 사용하는 Ctrl 키-피 내가 찾고 있는 변수나 함수는 대개 코드 뒤에 있기 때문입니다.또한 Vim의 동일한 복사본을 열어두면 이전에 열었던 파일을 검색합니다.
다른 팁
Vim 7은 옴니 완성을 지원합니다.
예를 들어, 내 vimrc에 이것이 있습니다.
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
그리고 내가 을 누르면 Ctrl-x Ctrl-o 삽입 모드에서는 자동 완성 가능성의 드롭다운 목록이 표시됩니다.
여기 omnicfunc이 있습니다 펄용.그래도 얼마나 잘 작동하는지 모르겠습니다.
음, Vim의 일반 완성 메커니즘은 놀라울 정도로 훌륭합니다. 삽입 모드에서 Ctrl-N을 사용하면 됩니다.또한 C-x C-l을 사용하면 줄 완성이 매우 편리합니다.
이것도 확인해 보세요 Perl용 vim 스크립트.
표준 CTRL-N
그리고 CTRL-P
~/.vim/ftplugin/perl.vim 파일에 다음을 추가하면 훨씬 더 잘 작동합니다.
iskeyword+= 설정:
그런 다음 모듈 이름 등을 자동 완성합니다.
다른 답변 중 하나의 .vimrc 클립이 약간 잘못되었습니다.탭 키를 자동 완성 키로 바꾸려면 다음 코드를 사용하세요.
inoremap <tab> <c-r>=InsertTabWrapper()<cr>
function! InsertTabWrapper()
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\<tab>"
else
return "\<c-p>"
endif
endfunction
이것과 다른 수많은 vim 트릭을 찾을 수 있습니다 Perlmonks의 이 스레드에서--더 많은 사용자 정의가 포함된 더 많은 스레드에 대한 링크입니다.
SuperTab 플러그인을 살펴보세요.http://www.vim.org/scripts/script.php?script_id=1643^N 및 ^P 대신 탭 및 Shift-Tab을 사용하여 완성(OmniCompletion 또는 일반 완성)을 수행할 수 있습니다.
Ctrl 키+N
이것은 패키지 완성 방법과 함께 Perl Hacks 책에 설명되어 있습니다.추천.