Vim Lecture #7 - Vim ctags

#7 - Vim ctags

main

1. Vim ctags

프로그래밍 소스코드의 태그 (전역변수 선언, 함수 정의, 매크로 선언)들을 모아둔 **Database(tags file)**를 생성하는 명령어에요. 이 DB를 이용해서 함수 및 변수의 위치를 쉽게 찾을 수 있습니다.

ctags 를 이용하면 소스코드 내에서 함수나 변수가 선언된 곳으로 이동할 수 있기 때문에 Vim에서 디버깅할 때 주로 사용할 수 있습니다.

2. ctags 설치

데비안 계열에서 ctags를 설치해볼까요.

sudo apt-get install ctags

간단히 ctags를 사용해 DB를 만드는 기본 명령어는 아래와 같아요.

ctags 파일이름( 여러개의 파일지정 ex) ctags file1 file2 file3 … )

보통 파일을 직접 지정하기 보다는 프로젝트에서 Vim과 연동해서 사용하기 때문에 프로젝트의 모든 tag DB를 생성하면 편리 합니다. 아래와 같이하면 현재 경로와 하위 모든 파일들의 tag DB를 생성하게 됩니다.

ctags -R

3. ctags 활용

vim 환경설정 파일을 열어 줍니다.

vi ~/.vimrc

그리고 아래와 같이 tags 파일 경로를 설정해 주면 됩니다.

set tags=tags파일 경로

위와 같이하면 항상 고정된 경로를 불러오게 되는데요. vim을 실행하는 위치에 따라 주변 상/하위 경로를 뒤져서 tags 파일을 가져오기 위해 저는 아래와 같이 설정해 뒀습니다.

set tags=./tags;../tags;../../tags;../../../tags;../../../../tags;../../../../../tags;../../../../../../tags;

좀 난 잡하지만 생각보다 효과적입니다.

이제 vim에서 ctags를 어떻게 활용하는지 볼까요.

일반모드 명령어모드 설명
CTRL + ] :ta tag명 커서위치 또는 tag명으로 점프
CTRL + t :po 이전 위치로 점프

가장 많이 활용하는 두 가지를 적어봤는데요. 코드 디버깅 하다가 점프하고 싶은 곳에 커서를 두고 CTRL+] 를 누르면 tag DB를 기반으로 점프하게 됩니다. 이클립스나 Visual Studio에서 기본 지원하는 기능과 동일하죠. 이전으로 다시 돌아오기 위해서는 CTRL+t를 누르면 이전으로 돌아옵니다.
한번씩만 점프가 되는 것은 아니고 여러곳으로 점프를 진행한 후에 다시 여러번 뒤로 돌아올 수 있습니다. 코드 디버깅 할 때 정말 필요한 기능이라고 볼 수 있겠네요.

4. 마무리

지금까지 Vim에서 ctags를 활용하는 방법에 대해서 알아봤는데요. ctags를 활용할 여러가지 기능들이 있지만 언제나처럼 확실히 쓰면 좋은 기능만 다뤄봤습니다. 좀 더 활용하게 된다면 이전에 설명했던 Vim 창 분할 기능과 응용하면 더 효과적으로 사용할 수 있겠네요. Vim으로 디버깅할 때 정말 필요한 기능인 만큼 꼭 활용하면 좋을 것 같네요. 다음에는 Vim 파일비교 에 대해서 설명해 보도록 할께요!

20230508 내용추가 - Ctags 종류가 여러개 있는데 최근까지 업데이트 잘되는 Universal ctags 추천

도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)

댓글 쓰기

0 댓글