1. ctags란?

ctag는 소스 파일을 태그라는 단위로 잘라서 태그정보를 토대로 소스 분석을 도와주는 유틸리티입니다.
윈도우즈 운영체제에서 많이 사용하는 IDE Tool 인 Visual studio에서는 기본적으로 제공하는 기능입니다. 리눅스 진영에서는 작은 기능을 하는 프로그램을 조합해서 쓰는 것을 좋아 하기 때문에 편집기에 ctags를 조합해서 사용합니다.

2. ctag설치

리눅스(우분투)에서 ctag를 설치 하기 위해서는 터미널에서 아래의 명령을 입력하면 됩니다.
$ sudo apt-get install ctags

3. tags 파일 만들기

ctag를 사용하기 위해서는 소스를 분석하고자 파일들에 대해서 tag정보를 추출해야 합니다.
아래의 코드를 사용하여 tag정보를 추출합니다.

(분석하고자 하는 소스파일이 있는 디렉도리의 최상위 디렉토리에서 실행) 
$ ctags -R

4. vim에 ctags 설정 정보 추가 하기

vim편집기에서 ctags정보를 이용하여 소스분석을 쉽게 할 수 있습니다.
아래의 설정정보를 .vimrc파일에 추가해 줍니다.
여러개의 tags파일 정보를 추가 하기 위해는 ','로 구분 합니다.

set tags=./tags, /usr/src/linu/tags


5. ctags 사용하기

4번 단계까지 설정이 끝났다면 vim에서 ctags를 이용할 수 있습니다. 아래는 ctags명령어를 정리해놓은 자료 입니다.

:ta [tag]   or   Ctrl + ]

[tag] 정의된 위치를 나열하고 선택한 위치로 점프. 현재 위치는 stack push 된다.

 :ta [tag]   or   tj [tag]

 :po   or   Ctrl + t

stack top에 저장된 위치를 pop하고 그 위치로 점프

 :sts [tag]

[tag]가 정의된 위치를 나열하고 선택한 위치로 창을 수평 분할하여 새로 생성된 창에 표시

 :stj [tag]

 :tn

 tj ts로 점프했을 때 다음 tag로 점프

 :tp

 tj ts로 점프했을 때 이전 tag로 점프

 :tr

 tj ts로 점프했을 때 처음 tag로 점프

 :tl

 tj ts로 점프했을 때 마지막 tag로 점프 

 :pts [tag]

 [tag]가 정의된 위치를 나열하고 선택한 위치로 창을 수평 분할하여 새로 생성된 창에 표시하지만 커서는 현재 위치에 유지

 :ptj [tag]

 미리보기 윈도우에 tag가 정의된 형식을 보임

 :ptn

 ptj pts로 점프했을 때 다음 tag로 점프

 :ptp

 ptj pts로 점프했을 때 이전 tag로 점프

 :ptr

 ptj pts로 점프했을 때 처음 tag로 점프

 :ptl

 ptj pts로 점프했을 때 마지막 tag로 점프