IT개발/Linux & Unix2008. 5. 15. 20:25
ctags 명령어

vi를 이용하여 찾고자 하는 함수의 위치를 찾는 유틸리티.

[citylock@localhost linuxTest]$ ctags -R

ctags 명령을 실행하면 tags 라는 파일이 생성된다.
---------------------------------------------------------------------------------------
!_TAG_FILE_FORMAT       2       /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED       1       /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    Darren Hiebert  /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME      Exuberant Ctags //
!_TAG_PROGRAM_URL       http://ctags.sourceforge.net    /official site/
!_TAG_PROGRAM_VERSION   5.6     //
functionA       3.c     /^void functionA(int a)$/;"     f
functionB       3.c     /^int functionB(char a)$/;"     f
functionC       3.c     /^int functionC(char c)$/;"     f
main    1.c     /^void main()$/;"       f
main    2.c     /^int main(int argc, char **argv)$/;"   f
main    unchanged.c     /^void main()$/;"       f
---------------------------------------------------------------------------------------

위의 내용은 tags 파일의 내용이다.
ctags는 코드에 들어있는 함수를 탐색가능하도록 만들어주는 색인 데이터베이스이다.
모든 함수의 구현부에 대한 정보를 tags에서 가지고 있다.
( -R 옵션은 현재디렉토리부터 시작해서 재귀적으로 함수의 데이터베이스를 구축한다.)

tags를 vi에서 사용하는 방법은 다음과 같다.

[citylock@localhost linuxTest]$ vi -t functionA

그러면 functionA 함수 구현부로 이동한다.

vi 내에서 다른 함수로 이동할때는 명령행 모드에서 다음과 같이 입력하면된다.
: tag functionB

또, 단축키를 이용하여 함수의 구현부로 이동할수도 있다.
ctrl + ] : 함수를 호출하는 곳에서 함수의 구현부로 이동
ctrl + t : 이동하기 이전의 위치로 돌아간다. (태그스택기능으로 여러개 동시에 가능)



Posted by 시티락