프로그래밍에 사용할 때 vim 자동 완성 함수 이름, 변수 등을 가질 수 있습니까?

많은 IDE가 사용자 유형에 따라 함수 이름, 변수, 메서드 이름 등을 자동으로 완성합니다. 가장 좋은 이름은 같은 프로그램의 다른 파일에 이미 정의 된 것뿐만 아니라 언어의 내장 라이브러리를 기반으로 이름을 완성합니다.

예를 들어 다음과 같이 입력합니다. Python 프로그램 :

hungy = True def eatFood(food): pass if hungry: eatF 

eatF 행에 eatFood() 사용 가능한 자동 완성 옵션입니다.

Vim에이 기능이 있습니까? 그렇다면 어떻게 활성화 할 수 있습니까?

답변

vim에는 다양한 종류의 자동 완성 기능이 있습니다. 한 가지 방법은 SuperTab 을 사용하는 것입니다. 이것은 어느 때나 탭 완성을 사용하는 방법을 제공합니다. 이렇게하면 완성 목록을 얻기 위해 단어를 부분적으로 입력 한 후 Tab 키를 누를 수 있습니다. 예를 들어 eatF 다음에 Tab을 입력합니다. : eatFood.

참고 :이 사진은 모두 작동중인 예제 gif에 연결됩니다.

mg src = “https://i.stack.imgur.com/dVuOT.png” alt = “supertab completes”title = “클릭하여 gif보기”>

Vim에는 다른 훌륭한 옵션이 있습니다. :h ins-completion를 읽어야합니다. 다양한 내장 완료 옵션. vim “s Ctrl X Ctrl O 사용 jedi 와 같은 Python 인식 플러그인은 완성 기능을 제공 할 수 있습니다. Jedi는 완전 완성에 대한 문서를 제공하도록 구성 할 수 있습니다 (이것이 Ctrl X Ctrl O 가하는 것입니다) ). 그러면 완료 후보에 대한 문서가 분할 창에 나타납니다.

mg src = “https://i.stack.imgur.com/etSIu.png” alt = “ctrlxctrlo 완료”title = “gif를 보려면 클릭”>

유사한 플러그인을 사용하지만 다른 옵션을 사용하면 모든 종류의 동작이 발생합니다. 예를 들어, 자동 완성을 요청하지 않아도됩니다 (그것이 다음에 오는 경우). 대신 단어의 몇 글자 (예 : 2 또는 3)를 입력하면 플러그인이 메뉴에서 가능한 완성을 지능적으로 제공합니다.

mg src = “https://i.stack.imgur.com/gtNK0.png”alt = ” 여기에 이미지 설명 입력 “title =”클릭하여 gif보기 “>

따라서 짧은 대답은 예! 하지만 구성 프로세스는 약간 복잡 할 수 있습니다. vim을 마스터하는 긴 계단의 한 단계라고 생각합니다.

댓글

  • ' 모두 시도했으며 항상 SuperTab으로 돌아 왔습니다. ' 가장 덜 방해가됩니다.
  • 또한 YouCompleteMe 플러그인이 마음에 듭니다. 입력 한대로 제안하고 제안을 선택하거나 무시할 수 있습니다. 예, 시각적으로 무시하기 어렵지만 내 워크 플로에 매우 방해가되지 않습니다. 필수 키 입력 횟수가 더 적습니다.
  • ' 클릭시 애니메이션을 " , gif 애니메이션에 연결되어 있다는 의미입니다.
  • 나는 ' 업무용 컴퓨터에서 YouCompleteMe를 사용할 수 없습니다. ' 종속 항목을 설치할 루트가 없으면 SuperTab이 차선책입니다.
  • @mixedmath 제 경우에는 superTab이 ' 작동하지 않습니다.

답변

이러한 기능-즉, 현재 파일 검색 ( 및 모든 열린 파일) 자동 완성을 위해 기본적으로 Ctrl+P :

사용중인 자동 완성 스크린 샷

iv id = “3aa9c1ccc6″를 사용하여 n 추가 제안으로 이동할 수 있습니다. >

, p Ctrl+P 문자를 입력하여 선택합니다 (제안 바로 뒤에 추가됨).

댓글

  • 편집자에게 (Jasper) : 나는 내가 ' 미래에 쓰거나 시작 부분이 아닌 최근에 쓴 것을 다시 쓰고 싶을 것입니다. 파일. 따라서 ^P는 더 자연스러운 IMHO입니다. 그렇지 않으면 수정 해 주셔서 감사합니다 (오른쪽 버튼을 클릭하고 +2를 얻었 으면합니다).
  • 예, 가상 인터넷 포인트를 얻었습니다. 🙂 항상 제안 목록이 알파벳순으로 정렬 될 것이라고 생각했습니다. ..
  • @Jasper 출현 순서입니다 (적어도 저에게는 확실합니다. 위도 참조 : world,word,wood 그 반대는 아닙니다).따라서 ^P는 마지막으로 사용 된 완성으로 매우 편리합니다 (긴 파일에서도 목록의 3 개 항목 이상으로 이동하는 경우는 거의 없습니다).
  • protip : inoremap <C-Space> <C-N>

답변

Vim은 기본적으로 완성을 지원합니다. . :h ins-completion에서 Vim이 지원하는 다양한 완성에 대해 읽을 수 있습니다.

일반적으로 내가 찾은 모든 목적에서 ins-completions는 내 취향에 충분합니다. , 그러나 ins-completions가 제공하는 것 이상의 가치를 더하는 몇 가지 완성 플러그인이 있습니다. NeoComplete , YCM (YouCompleteMe) 은 몇 가지 동일합니다. 서로 다른 유형의 완성을 더 정확하게 결합하려고한다는 점에서 더 발전했으며 고급 캐싱 메커니즘도 있으므로 더 빠른 경향이 있습니다. YCM은 더 나은 IntelliSense를 제공하기 위해 외부 컴파일러 / 유틸리티와 함께 작동하는 범위까지 이동합니다.

Answer

예, 자동 완성 스크립트 정력이 존재합니다. “최상의”선택은 프로그래밍 언어에 따라 다릅니다. 예제 코드가 Python이므로 Jedi 를 살펴볼 것을 제안합니다. You complete me 가 존재하며 다른 언어도 지원하지만 때로는 너무 큰 것으로 간주됩니다. 다른 언어의 경우 vim 스크립트 에서 긴 세트를 찾아 볼 수 있습니다.

Answer

삽입 모드에서 단어의 처음 몇 글자를 입력하고 다음을 누릅니다.

Ctrl-N to insert the next matching word; or Ctrl-P to insert the previous matching word. 

이는 특히 입력 할 때 유용합니다. 프로그램의 변수 이름.

“complete”옵션은 키워드가 검색되는 위치를 제어합니다 (파일, 태그 파일, 버퍼 등 포함).

“completeopt”옵션 완료가 발생하는 방식을 제어합니다 (예 : 메뉴 표시 여부).

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다