본문 바로가기

Software

vim (cscope ctags)

반응형

 

cscope ctags를 vim에서 사용하는 방법에 대해서

ctags : 소스 코드의 (전역변수 선언, 함수 정의, 메크로 정의)들의 데이터 베이스를 생성하여 손쉽게 각 선언/정의 부까지 찾아 들어갈수 있는 유틸입니다.

cscope : 지역, 전역변수등 여러 질의문을 통하여 소스 전역적으로 원하는 심볼을 찾아 볼 수 있습니다.

#>apt-get install vim cscope ctags
====== /etc/vim/vimrc 에 다음 내용추가 ======
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb

if filereadable("./cscope.out")
  cs add cscope.out
else
  cs add /usr/src/linux/cscope.out
endif
set csverb
==========================================

우선 cscope와 ctags는 search할 소스의 최상위에서
다음을 수행하여 각각의 db 파일을 생성합니다.
#>cscope -R   //종료는 Ctrl + D
#>ctags -R
위와 같이 수행하면 cscope.out 과 tags 파일이 생성되있는것을 확인 할 수 있습니다.

이제는 vim을 수행하여 손쉽게 원하는 선언부나 함수이름등 특정 심볼명에 대해 검색하거나 찾아 들어 갈 수 있습니다.

간략한 cscope 사용방법으로는
vim 명령행 모드(ESC)(콜론 : )
:cs find t main
과 같은 방식으로 소스 내에서 main의 이름을 갖는 모든 라인에 대해 리스트업 하여 줍니다.
추가적으로 다음의 기능이 존재합니다.
cs find 0 or s  - > Find this C symbol
cs find 1 or g  - > Find this definition
cs find 2 or d  - > Find functions called by this function
cs find 3 or c  - > Find functions calling this function
cs find 4 or t  - > Find assignments to
cs find 6 or e  - > Find this egrep pattern
cs find 7 or f   - > Find this File

간략한 ctags 사용방법으로는
vim 일반모드 (ESC)
에서 커서를 원하는 함수명이나 변수명에 위치 시킨뒤에 Ctrl + ] 의 조합키를 누르면
변수/함수 선언부로 이동하게 됩니다.
다시 원위치로 돌아오는 부분은 Ctrl + t 의 조합키를 사용합니다.

반응형