Vim 자동 완성 어휘에 단어 세트를 추가 할 수 있습니까?


14

Vim에서 CTRL-n 및 CTRL-p를 사용하여 문서에서 찾은 단어를 자동 완성하는 것을 알고 있습니다. 설명적인 메소드 및 변수 이름 사용을 장려하는 데 유용합니다.

자주 편집하지만 현재 편집중인 소스 파일에없는 자동 완성을 위해 단어 세트를 추가하고 싶습니다. 내 현재 솔루션은 템플릿 파일의 맨 아래에있는 주석에 단어 목록을 추가하는 것입니다.

모든 Vim 세션에서 액세스 할 수있는 Vim의 자동 완성 어휘에 단어를 추가하는 방법이 있습니까?

답변:


11

~/.vimrc파일 에서 약어를 사용 하여 몇 단어 만 사용할 수 있습니다 .

: abbr supe 수퍼 유저
: abbr autoc 자동 완성
: abbr que 질문

Space또는 을 누르면 자동 완성됩니다 Enter. 당신이 입력 한 que다음 누르면 Space또는 당신을 Enter위해 단어 "질문"을 끝낼 것입니다.

많이 추가하고이 인터페이스를 원하는 경우 :

대체 텍스트

사전 을 사용할 수 있습니다 . 각 줄에 단어가 포함 된 파일을 설정 한 다음 .vimrc에 다음과 같은 줄을 추가하십시오.

set dictionary+=/home/john/dict.txt

경로를 사전 파일의 위치로 바꾸십시오. 그런 다음 Ctrl+ xCtrl+ k를 사용 하여 제안을 가져올 수 있습니다 . Ctrl+ nCtrl+ p를 사용하여 여러 항목 중에서 다음 / 이전 항목을 선택합니다.


1
환상적입니다! 사전을 사용하겠습니다!
madh

이것은 효과가 있었다! 그래도 멋진 메뉴를 얻지 못했습니다. 최신 버전이 아닌 VIM 6.3.82를 사용하고 있습니다.
마드

아 ... 업데이트 도움이 되나요? 메뉴를 불러 오려면 순서 Ctrl-x, Ctrl-k를 눌러야합니다. :)
John T

이것이 올바른 방법입니다.
.

이것이 VIM 7.2에서 작동하는지 확인했습니다. 다시 감사합니다!
madh

3

일반 자동 완성에 대한 "소스"( Ctrl+ N에서 얻은 것)는 complete옵션 에서 가져옵니다 (참조 :h 'complete'). 기본값은

complete=.,w,b,u,t

그 의미는

  1. . 현재 버퍼를 스캔
  2. w 다른 창에서 버퍼 스캔
  3. b 버퍼리스트에있는 다른로드 된 버퍼를 스캔
  4. u 버퍼리스트에있는 언로드 버퍼를 스캔
  5. t 태그 완성

당신은 당신의 자신의 사전을 추가 할 수 있습니다

set complete+=k~/.vim/keywords.txt

에 한 줄에 하나씩 키워드를 추가하십시오 ~/.vim/keywords.txt. 이 방법으로 Ctrl+를 사용하여 완성에 직접 액세스 할 수 있습니다 N( Ctrl+ X, Ctrl+로 사전 완성을 명시 적으로 호출 할 필요는 없습니다 K). 나는 이것이 일반적으로 사용되는 모든 함수 이름을 가진 코드 완성에 특히 유용한 것으로 나타났습니다.keywords.txt

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.