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 댓글