developer tip

Vim의 자동 완성은 매우 느립니다.

optionbox 2020. 12. 3. 07:46
반응형

Vim의 자동 완성은 매우 느립니다.


대부분의 경우 Vim의 자동 완성 기능은 저에게 잘 작동하지만 때로는 현재 파일이 참조하는 파일을 스캔하는 것처럼 보이며 고통스럽고 느려져서 초점을 다시 맞추는 데 몇 초가 걸립니다.

때때로 Vim은 단순히 "스캔 중"이라고 말하고 "태그 스캔 중"이라고 말합니다.

Ruby 파일에서만 이런 일이 발생했으며 대부분 파일에 요구 사항이있을 때 발생합니다.

내 생각 엔 이것이 자동 완성 옵션에 대한 관련 파일을 확인하는 일종의 기능이라고 생각하지만 실제로는 필요하지 않으며 더 빠른 자동 완성을 선호합니다.


댓글에서 언급했듯이 동일한 문제가 발생했습니다. 내가 찾은 내용은 다음과 같습니다.

VIM에 완료를 찾을 위치를 알려주는 설정이 있습니다 complete.

:set complete
complete=.,w,b,u,t,i

이것이 기본값입니다. 내 문제는 (실제로 ..) 포함 된 모든 파일을 스캔하는 'i'입니다. 다음은 두 가지 문제입니다. 첫 번째 문제는 모든 파일을 찾는 데 시간이 오래 걸릴 수 있습니다. 특히 나처럼

:set path=**

두 번째 문제는 일단 발견되면 읽어야합니다. 네트워크로 연결된 파일 시스템을 사용하는 경우 (저는 명확한 케이스에 있음) 모든 파일을 찾고 읽는 것이 캐시 누락을 유발하여 고통스럽게 느려질 수 있습니다.

나는 태그 파일을 가지고 있기 때문에 지금은 i를 제거했으며, 종종 'b'및 'u의 결과로 검색 될 버퍼 (로드 또는 언로드)에 관련 파일이 있습니다. '.

사용하다

set complete-=i

목록에서 i를 제거하려면 이것이 버퍼에 로컬이라는 점에 유의하십시오.


Vim 7.3 (7.2에서)으로 업그레이드 한 이후 매우 유사한 문제가있었습니다. (우수한) ACP 플러그인을 사용 하고 있었고 더 긴 소스 파일 (C-files, 1700 LOC)에서 팝업이 제안을 건너 뛰는 데 오랜 시간이 걸렸습니다. 파일 하단 근처에서 편집.

PerformanceValidator ( Softwareverify에서 제공 )를 사용하여 일부 fold 메서드가 반복해서 호출되어 매우 높은 프로세서로드와 느린 완료로 이어진다는 것을 알았습니다.

내 해결 방법은 foldmethod( fdm)를 manual. 그리고 이것은 그것을 해결했습니다 ...


작업중인 프로젝트에 대한 태그 파일이 있습니까? 그렇지 않다면 exuberant-ctags로 하나를 생성하고 Vim은 taglist pluglin으로 그것을 선택해야합니다.

참고 URL : https://stackoverflow.com/questions/2169645/vims-autocomplete-is-excruciatingly-slow

반응형