소스 분석에 유용한 ctags

2012, Mar 10    

ctags는 vi나 emacs와 같은 에디터에 소스 분석을 할때 유용한 플러그인 같은 툴입니다.

일단 설치 하는 방법 알아봅시다.
간단히 설치가 가능하며

ctags -R을 통해 하위디렉토리까지 돌면서 각 소스의 정보를 수집합니다.
저는 리눅스 커널 소스에 정보를 수집하게 했으며 시간이 좀 걸립니다.
다 끝나게되면

tags라는 파일이 만들어지는게 보일겁니다. 

#vim -t task_struct 하면 task_struct를 찾아 보여주게 됩니다. </div>

이렇게 말고는 
vi의 명령 모드에서 :ta task_strcut 를 치게되면 동일한 명령이 먹힙니다. 

vi에 설정은 다음과 같이 하시면 됩니다.


그리고 모르는 구조체나 함수가 있다면 그 곳에가서  ctrl+]를 누르면 정의된 곳으로 갑니다.

저는 일단 cputime_t라는 타입을 모르겠다고 가정하고 ctrl+]를 눌러보면  

다음과같이 정의된 부분인 곳이 나옵니다. 다시 되돌아갈려면 ctrl+t를 누르면 복귀가 됩니다.

정의부분 찾아가고 복귀하고 이런게 스택처럼 저장이 되기때문에 자꾸 자꾸 내려가서 되돌아오고 이런게 가능합니다.

그리고 손으로 다치다보면 스펠링이 틀릴수도 있는데 ctags를 이용하여 자동완성이 됩니다.
일단  .vimrc에 다음과 같이 설정을 합니다.

새파일을 만들어서 테스트를 해보겠습니다.
#incl만 치고 ctrl+n를 눌렀을경우 자동완성이 될 수 있는 목록이 나옵니다.

그리고 마지막으로 검색속도를 올려주는
set tagbsearch라는 설정도 있습니다.