Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>
자동완성

4. 자동완성

void A_Very_Long_Function_Name()
{
	...
}

short A_Very_Long_Variable_Name;

void Another_Function()
{
	...
	A_Very_Long_Function_Name();
	...		
}
위 코드를 보면 A_Very_Long_Function_Name 이라는 긴 이름의 함수가 사용되고 있다. 이렇게 이름이 길다보면, 이름을 기억하기가 쉽지 않아서, 나중에 함수를 쓸 때, 힘들게 기억해내야 하는 불편함이 발생한다. 기억을 해냈다고 하더라도 함수명을 쓰는 도중에 오타가 생겨날 수도 있다. 많은 IDE(12)들이 이러한 문제를 해결하기 위해서 자동완성 기능을 제공하는데, vim 역시 훌륭하게 자동완성 기능을 지원하고 있다.

A_Very 까지 입력하고 나서 CTRL-P를 입력해보기 바란다. 그러면 A_Very로 시작되는 함수/변수명 등을 검색할 수 있다. 위의 예제 코드는 2개의 A_Very로 시작하는 단어(함수와 변수)를 가지고 있는데, CTRL-P를 연속으로 누르면, A_Very로 시작되는 다음 단어를 검색하게 된다. 원하는 단어를 찾을 때까지 CTRL-P를 눌러주기만 하면 된다. 자동완성 기능은 vim의 입력모드에서 사용할 수 있다.

CTRL-P와 비슷하게 사용할 수 있는 CTRL-N키도 있다. 뒤로 검색한다는 걸 제외 하고는 CTRL-P와 동일하게 사용할 수 있다.

자동완성 기능은 기본적으로 현재 열린파일에서만 작동을 한다. 하지만 많은 경우 자동완성이 필요한 변수/클래스명 등은 외부파일에 따로 선언되는 경우가 많을 것이다. 이런경우 :set dictionary=file명령을 이용해서 자동완성을 위해 참조할 파일을 지정할 수 있다.

다음과 같이 C나 C++등에서 자주사용되는 키워드, 함수, 클래스이름 등을 정리해서 따로 사전파일로 만들어 두면, 좀더 편리한 개발환경을 만들 수 있을 것이다.

# cat .cdict
break
case
continue
default
define
do
double
else
enum
float
goto
ifndef
ifdef
switch
typedef