[vi] ctags 사용법

Linux 2011. 2. 17. 16:41
vi를 이용하여 C programming이나 Verilog RTL 작성을 하다 보면
함수나 변수, module이나 signal, wire의 선언부로 왔다리 갔다리 해야한다.
거기다가 파일이 많으면 어느 파일에 선언했는지조차 모르게 되는 경우가 종종 있는데
이럴 때 사용하면 편한 것이 ctags이다.

ctags는 이름에서도 알 수 있듯이 원래는 C programming 용이하게 하기위한 program이다.
하지만 Verilog에서도 워낙에 파일이동이 잦고 많이 쓰이다보니 이 또한 지원하게 되었는데
사용하는 방법은 똑같다

1. 사용법
vi내에서 ctags를 사용하려면 일단 각각의 파일의 tag를 정리해놓은 tags파일을 생성해야 한다.
이 작업은 Linux 상에서 생성해줘야한다.
일단은 program 또는 RTL의 최상위 source가 있는 디렉토리에서

> ctags -R *

이라고 치면 현재 디렉토리와 그 하위디렉토리에 있는 모든 파일에 대하여 tag를 tags파일에 생성하게 된다.

여기서 최상위 source code가 있는 디렉토리에서 위의 명령어를 생성하라는 이유는 다음과 같다.
vi내에서 ctags를 사용할 때 vi는 이 tags파일을 참조하게 되는데, 이때 tags파일은 vi를 실제 실행시킨 디렉토리 내에 있어야 한다.
보통 vi를 실행하여 programming을 시작하는 부분이 최상위 source program이기 때문에 최상위 source code가 있는 디렉토리에서 명령어를 실행하는 것을 권장한다.

만약 디렉토리 구조가 다음과 같고
RTL --- bus
         I- top
         I- proc
         I- peri
top 디렉토리에 최상위 source가 있다면

top 디렉토리에서
RTL/top> ctags -R ../*

같이 실행하여야 할 것이다.

위와 같이 tags파일을 생성한 후 vi를 실행시키면 vi는 같은 디렉토리에 있는 tags파일을 참조하여
파일간 이동이 가능하도록 동작하는데
파일간 이동을 하는 방법은 다음과 같다.

지금 커서가 있는 이름의 함수, 변수, module, signal, wire의 선언부로 이동하려면 Ctrl+]
그리고 이동 전으로 돌아가고 싶으면 Ctrl+T
지금까지 이동한 내역, 즉 히스토리를 보려면 command-line mode에서 :tags
를 사용하면 된다.

'Linux' 카테고리의 다른 글

[vi] 'gf' (go file) 명령어 설정 (환경 변수 포함시)  (0) 2012.04.25
[vi] Line 단위로 지우기  (0) 2011.12.07
[vi] 편리한 몇가지 팁  (0) 2011.02.17
[Perl] Bin to Hex Converter  (0) 2011.02.14
[Perl] Hex to Bin Converter  (0) 2011.02.14
Posted by sunshowers
,