Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>
빠른수정

7. 빠른수정

Vim을 이용해서 프로그래밍을 할 때의 문제점은 편집-컴파일-편집의 무한순환을 반복해야 하는 경우가 발생한다는 점이다. 일반적으로는 편집을 마치고, 편집창을 빠져나온 다음 컴파일을 하고, 컴파일 결과를 보고 다시 Vim 화면으로 가서 필요한 코드를 수정하거나 하는 식이다. IDE와 같이 편집/컴파일 과정이 통합되지 않은 까닭에, 오류메시지를 별도의 창에 가져다 붙인다음에, 코딩을 해야 하는 등의 문제도 발생한다.

전용 에디터인 Vim으로는 IDE와 같은 완전한 통합환경을 구축하기는 힘들지만 그럭저럭 좀더 편하게 사용가능 하도록 할 수는 있다.

가장 단순한 방법은 컴파일 과정에서 발생한 에러를 파일로 저장한다음 그 정보를 토대로 해당 에러 위치로 편리한 이동을 하는 방법이다.

1 #include <sys/utsname.h>
2 #include <stdio.h>
3
4 int main()
5 {
6	struct utsname buf;
7	uname(&buf);
8
9	printf("%s %s %s  %s\n", buf.sysname, buf.nodename, buf.release, buf.machine, buf.test);
10	for(int i = 0; i &lt; j; i++)
11	{
12	}
13	return 0;
14 }
		
위의 코드를 컴파일 하면 3군데에서 에러가 발생할건데, 컴파일 과정을 따로 파일로 저장하도록 한다.
# gcc uname.c 2> uname.err
이제 아래와 같이 호출하면 커서의 위치가 자동적으로 처음 에러가 발생한 위치인 9번째 줄로 이동한다. 다음 :cn을 이용하면 다음 에러(혹은 경고)로 이동한다. 10번째 줄로 이동하는 걸 확인할 수 있을 것이다. :cN를 입력하면 이전 에러(혹은 경고)로 이동할 수 있다.
# vim -q uname.err

만약 Makefile(:12)을 통해서, 코드가 관리되고 있다면, vim 화면에서 바로 컴파일 하고, 에러를 확인할 수 있다. 에러의 이동은 :cn, :cN으로 하면 된다.

:make
Makefile을 통해서 관리하지 않은 경우도 있을 것이다. 그럴경우 아래와 같이 컴파일 방식을 직접 입력시켜 주면 된다.
:set makeprg=gcc\ uname.c
이제 :make를 입력하면 make대신 gcc uname.c가 실행되는걸 확인할 수 있을 것이다. 더이상 에러가 없으면 에러없음를 출력한다.

여기에서 제시한 방법을 이용하면, 훨씬 퀘적한 개발환경을 만들 수 있을 것이다.