2008년 11월 5일 수요일

vim, ctags, cscope사용법 정리.

VI 설정.


Home directory아래 .vimrc 파일을 아래와 같이 설정


set number :
line number를 왼쪽에 보여줌.
set cindent :
c 스타일의 indent. 예를들어 여는괄호, 닫는 괄호 인덴트가 자동화됨
set smartindent :
정확히 어떤 똑똑한 인덴트 기능이 추가되는지 파악 못함
set ts=4 :
tab key눌렀을때 스페이스 4칸 만큼 떨어짐.
set sw=4 :
자동 인덴트시 스페이스 4칸 만큼 인덴트됨.
set ruler :
오른쪽 하단에 현재 커서 위치(좌표) 표시
syntax on:
syntax highlight(coloring)기능을 켬
set tags=tags :
태그 파일 설정. 오른쪽 tags는 vi를 실행시킨 디렉토리(current directory)의 tags란 파일을 의미함.
cs add cscope.out :
cscope파일 설정
source $HOME/cscope_maps.vim
cscope단축기 설정. cscope_map.vim은 "http://cscope.sourceforge.net/cscope_maps.vim"에서 다운 받을 수 있다.


vim에서 ctag및 cscope를 사용하기 위해서 해야 하는 일들.


find . -name *.[chsCHS] -print > cscope.files

cscope -b -i cscope.files

ctags -R .



> cscope의 -b 옵션을 주면 cscope.out파일만 생성되고 종료. -b 옵션이 없으면 cscope자체가 실행됨.
> cscope의 -i 옵션으로 입력파일 이름리스트가 있는 파일을 지정할 수 있음. -i옵션 없으면 default로 cscope.files를 사용하므로 위 예제에서는 -i 옵션이 굳이 필요 하지 않음.




vim에서 cs(cscope) 명령이 동작 하지 않는다면..

:ver 를 실행하여 +cscope인지 -cscope인지 확인할 것. -cscope면 +cscope로된 vim바이너리를 구하던지 vim을 직접 compile하여야 함. vim소스를 구했다면 일반적으로 --enable-cscope 옵션을 주고 컴파일하면 됨.


vim에서 cs 사용 법.
:cs find s symbol_name


cscope_maps.vim 설정을 사용하면 Cntl-'\' 단축기를 사용할 수 있다.



0 or s : (Cntl-'\' + s)
C 심볼중 검색
1 or g : (Cntl-'\' + g)
symbol_name의 정의를 점색
2 or d: (Cntl-'\' + d)
symbol_name에 해당하는 함수에 의해 호출되는 함수를 검색
3 or c: (Cntl-'\' + c)
symbol_name에 해당하는 함수를 호출하는 함수를 검색
4 or t: (Cntl-'\' + t)
symbol_name에 해당하는 text문자열을 검색
6 or e: (Cntl-'\' + e)
확장 정규식을 사용하여 symbol_name를 검색

7 or f: (Cntl-'\' + f)
파일이름중에서 symbol_name를 검색

8 or i: (Cntl-'\' + i)
symbol_name를 include하는 파일을 검색.









vim에서 아래와 같이 help를 불러올수 있다.


:help cscope




더 많은 내용이 필요할 경우에는...
http://wiki.kldp.org/wiki.php/VimCscopeTutorial