문제

놀랍게도 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 책에 설명되어 있습니다.추천.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top