1. 필요 tools: vim, ctags, cscope
2. 손볼 files: ~/.vimrc, ~/.vim/plugin/cscope_maps.vim(이건 web에서 download), /usr/bin/mkcscope.sh
2. 설치: (sudo) apt-get install vim, ctags, cscope(또는 (sudo) yum install vim, ctags, cscope)
3. setup
3.1. ctags setup
source code가 있는 project folder로 이동하여 다음의 command 입력
-> ctags *(현재 directory의 모든 소스의 tags 정보 만들기)
-> ctags -R(현재 directory의 하위 모든 소스에 대해 tags 정보 만들기. 두번째 것만 해 줘도 될 것 같다.)
.vimrc 파일에 tags 설정
-> vi ~/.vimrc
-> 'set tags=SOURCE_DIR/tags' 입력, wirte&quit
3.2. cscope setup
/usr/bin director 밑에 mkcscope.sh파일을 만든다.('chmod 755 mkcscope.sh'로 permission change)
mkcscope.sh 파일에 아래 내용 추가
=============== mkcscope.sh script ================
#!/bin/sh
rm -rf cscope.out cscope.files
find ./ -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name '*.S' > cscope.files
cscope -i cscope.fils
===================================================
위 script는 간단하게 현재 하위 파일의 모든 파일 중에서 *.c, *.cpp, *.cc, *.h, *.s, *.S 등 cscope로 분석 가능한
소스 파일들을 찾아서 cscope.files라는 list 파일을 만든 후에 cscope -i cscope.files를 실행해서 cscope.out database를
생성하는 script이다.
-> cd SOURCE_DIR
-> mkcscope.sh
Database 파일(cscope.out) build가 끝나면 Ctrl d 키로 빠져나옴.
3.3. vim setup
~/.vimrc file에 아래 set values 추가
================== cscope setting ==================
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
if filereadable("./cscope.out")
cs add cscope.out
else
cs add SOURCE_DIR/cscope.out
endif
set csverb
=====================================================
설정 끝.
4. Usage
4.1. vim 실행 후 source 내에서 symbol 찾기
- 찾으려고 하는 symbol위에서 'Ctrl \,s'(Ctrl 역슬레쉬 입력하고 그냥 s)를 입력하면 symbol로 빠르게 이동하거나 리스트가 보여짐.
- 리스트가 보여질 경우 number key로 선택
- Ctrl t 하면 이전 line으로 back
- Symbol 위에서 'Ctrl-spacebar s'하면 vim 창을 분활하여 symbol로 이동(입력기에서 'Ctrl space'가 입력 모드 전환으로 설정되어 있으면
- 당연히 안되고 한글을 쓰려고 하니, 입력기에서 'Ctrl space'를 삭제. 한글키가 먹어줌으로 필요 없음)
4.2. vim command line에서 찾기 명령어
- cscope 명령어 사용(or cs로 typing)
ex) :cs(cope) f(ind) [querytype] STRING
* querytype
s: symbol
g: definition
d: function called by this function
c: function calling this function
t: text
f: this file
i: include file
- cscope 명령 대신 scscope(or scs)를 사용하면 가로로 창이 분할되어 symbole을 찾음.
[출처] ctags, cscope 설치 및 사용법|작성자 노랑무우
===================================================================
vimrc 설정
===================================================================
"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
"tag list
"set tags =/work/android/tags
set tagbsearch
===================================================================
'<프로그래밍> > ___Unix/Linux' 카테고리의 다른 글
user 추가 (0) | 2013.04.05 |
---|---|
find 명령어 옵션과 사용 (0) | 2013.04.03 |
vim에서 redo undo (0) | 2013.03.21 |
삼바 클라이언트 (0) | 2013.03.11 |
삼바 사용자 등록 (0) | 2013.03.11 |