VI와 ctags :: 2007/12/18 17:36
/C++
|
|
하지만 그렇다고 vi가 저열한 에디터인건 아닙니다. 사실 vi와 Emacs 에디터 중 어느 것이 더 낫느냐를 두고 많은 프로그래머들이 "종교전쟁"에 가까운 입씨름을 해 왔습니다만, 아직도 결판은 나지 않았습니다. (저는 vi를 선호함에도 Emacs가 더 강력하다고 느낍니다. 개인적으로는, '선호도'를 두고 입씨름 하는 것이 세상에서 가장 미련한 짓이라고 생각합니다.)
말이 또 샛길로 샜는데 -_-; 아무튼 vi와 ctags 유틸리티를 함께 사용하면 굉장히 빠른 소스 코드 브라우징을 할 수 있습니다. 간단히 그 사용법을 알아보겠습니다.
1. 첫 번째 단계 : source code에 태그를 단다
ctags를 사용해 브라우징할 대상이 되는 소스 코드들을 입력으로 주어, tags 파일을 생성합니다. 다음과 같이 합니다.
%> ctags *.{h,cpp}이렇게 하면 같은 디렉터리 아래에 tags 파일이 만들어집니다.
2. 두 번째 단계 : source code 브라우징
이제 소스 코드 브라우징을 해 봅니다. vi를 시작할 때 하는 방법이 있고, vi 안에서 하는 방법이 있습니다.
a. vi 기동시 특정한 함수 코드의 시작 부분으로 점프하는 방법
%> vi -t function_foo
위와 같이 하면 function_foo의 코드가 있는 부분부터 볼 수 있습니다.
b. vi 안에서 특정한 함수의 시작 부분으로 뛰는 법
vi의 : 모드에서 다음과 같이 입력합니다.
:tag function_name
그러면 vi 커서가 function_name 함수의 시작 부분으로 뜁니다. 소스 코드 위의 특정 위치에 커서를 가져다 놓고 Ctrl + ]를 누르는 방법도 있습니다. 그러면 커서가 위치한 곳에 놓인 함수 이름과 같은 이름을 갖는 함수 코드 시작 부분으로 커서가 점프합니다.
이전 위치로 도로 돌아가려면 Ctrl + t를 누르면 됩니다. 계속 누르면 원래 위치로 돌아갈 수 있습니다. (history가 유지됨)
그런데 ctags의 한가지 안좋은 점이라고 한다면, C++에서는 같은 이름을 갖는 함수가 엄청나게 많이 정의될 수가 있는데, 그럴 경우 화면에 같은 이름을 갖는 함수들의 번호가 떠서 그 중 어디로 점프할 것이냐를 묻는다는 점입니다. 하긴 ctags 프로그램이 컴파일러도 아니니, 그런 사항까지 정확하게 처리하기는 좀 힘들겠어요.
간단한 사항이지만, 코딩하다가 생각이 나지 않는 경우도 있어서 정리해보았습니다.
이것 말고 cscope라는 유사한 툴도 있는데, cscope가 ctags보다는 더 강력하다고 알려져 있습니다. 이 툴에 대한 한글 사용법은 http://wiki.kldp.org/wiki.php/VimCscopeTutorial에 잘 정리되어 있습니다.
|
|
트랙백 주소 :: http://www.buggymind.com/trackback/90





