"포함 파일 스캔"에 Ctrl-n 완료에 시간이 오래 걸림


15

내 vim 기술을 연마하고 Ctrl-n 명령을 사용하여 완성되었습니다. Perl에서 프로그래밍 중입니다. 삽입 모드에 있고 Ctrl-n을 누르면 터미널 맨 아래에서 "포함 파일 스캔 중"이라는 메시지가 표시되며 펄 배포 디렉토리에서 파일을 스캔하는 것처럼 보입니다. 완료되기까지 몇 초가 걸릴 수 있습니다. 주석 처리 된 패키지를 사용 하여이 작업을 수행하는 것처럼 보입니다.

#use Moose;

따라서이 기능을 유용하게 사용하려면이 줄을 삭제해야합니다. 뭔가 빠졌습니까?

perl-support 플러그인을 사용하고 있습니다.


.vimrc에서 이와 같은 것을 시도했지만 효과가있었습니다.let g:ctrlp_custom_ignore = { 'dir': '^/usr/' } let g:ctrln_custom_ignore = { 'dir': '^/usr/' }
StevieD

답변:


13

기본적으로 C-n또는을 ( 를) 누르면 C-pVim은 다양한 소스를 조사하여 완료 메뉴를 채울 후보를 찾습니다.

이러한 소스는 buffer-local 'complete'옵션 으로 구성 할 수 있습니다 .

이 옵션의 값은 쉼표로 구분 된 플래그 목록입니다. 각 플래그는 다음에 설명 된 고유 한 의미를 갖습니다 :h 'cpt.

.   scan the current buffer ('wrapscan' is ignored)
w   scan buffers from other windows
b   scan other loaded buffers that are in the buffer list
u   scan the unloaded buffers that are in the buffer list
U   scan the buffers that are not in the buffer list
k   scan the files given with the 'dictionary' option
kspell  use the currently active spell checking |spell|
k{dict} scan the file {dict}.  Several "k" flags can be given, patterns are valid too.  For example:  
        :set cpt=k/usr/dict/*,k~/spanish
s   scan the files given with the 'thesaurus' option
s{tsr}  scan the file {tsr}.  Several "s" flags can be given, patterns are valid too.
i   scan current and included files
d   scan current and included files for defined name or macro |i_CTRL-X_CTRL-D|
]   tag completion
t   same as "]"

기본적으로 값은입니다 .,w,b,u,t,i.

   1. the current buffer
   2. buffers in other windows
   3. other loaded buffers
   4. unloaded buffers
   5. tags
   6. included files

포함 된 파일을 검사하는 데 시간이 너무 많이 걸리면 옵션 에서 i플래그 를 제거 할 수 'cpt'있습니다.

전역 값에서 제거하려면 기본적으로 모든 버퍼에 영향을 미치려면 vimrc다음과 같이 작성하십시오 .

setglobal complete-=i

perl파일에 대해서만 동일한 작업을 수행하려는 경우 다음 위치 에 autocmd를 설치할 수 있습니다 vimrc.

augroup PerlSettings
    autocmd!
    autocmd FileType perl setlocal complete-=i
augroup END

또는 파일 형식 플러그인을 만들 수 있습니다 (예 ~/.vim/after/ftplugin/perl.vim:에서 작성).

setlocal complete-=i

'complete'옵션 의 현재 전역 및 로컬 값이 무엇인지 , 마지막으로 설정된 위치를 확인하려면 다음 명령을 사용할 수 있습니다.

verbose setglobal complete?
verbose setlocal complete?

또는 더 짧게 :

verb setg cpt?
verb setl cpt?

관심있는 유일한 소스가 현재 버퍼 인 경우을 사용하는 대신을 사용할 C-n수 있습니다 C-x C-n. 자세한 내용 :h i_^x^n은 참조하십시오 .


1
특정 경로의 파일에서 키워드를 제외시키는 방법이 있습니까?
StevieD

Vim 문서는 'complete'"포함 된 파일" 을 언급하지만 그 의미에 대한 자세한 내용은 링크하지 않습니다. 따라서를 읽으십시오 :he include-search. 여기서 'include'옵션이 의미하는 바를 정의하고 'path'검색에 사용됨을 알 수 있습니다. 이는 전체 기능을 켜고 끄는 것보다 세밀한 사용자 정의를 수행하는 데 유용합니다.
jwd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.