BLOG ARTICLE ctags | 2 ARTICLE FOUND

  1. 2007/03/28 cscope : ctags 보다 강력하다!
  2. 2007/03/28 ctags를 이용하여 소스태그 찾기 (2)

ctags 로 찾을 수 있는 C, C++ 태그 종류

이처럼 catgs만으로는 지역변수나 전역변수가 사용된 곳, 함수가 사용된 곳은 찾기 힘들므로, cscope를 사용하게 된다.  

사용자 삽입 이미지


cscope 설치 확인

# vim version

사용자 삽입 이미지

위 명령어를 실행했을 때 +cscope라는 결과를 볼 수 있다면 cscope를 사용할 수 있다.

 

◎ 다운로드

http://rpmfind.net

http://cscope.sourceforge.net

 

◎ 분석하고자 하는 디렉토리에서 cscope.out 파일 생성

사용자 삽입 이미지

현재 디렉토리 이해 모든 디렉토리에서 분석하고자 하는 소스파일들을 찾아 cscope.files 라는 파일에 담고, cscope.out 심볼 데이터베이스 파일을 생성한다.

 

◎ 자동 생성을 위한 셀 스크립트

사용자 삽입 이미지

# chmod 755 mkcscope.sh

# mv mkcscope.sh /usr/local/bin

 

mkcscope.sh 를 실행하면 간편하게 cscope.out 파일을 생성할 수 있다.

 

~/.vimrc 파일에 추가

사용자 삽입 이미지

 

cscope 사용방법

:cs find [질의 종류] [심볼]

> :cs find s printf

사용자 삽입 이미지
                               < cscope 질의 정류 >

 


~/.vimrc 파일에 추가한 cscope 함수와 단축키 설정

사용자 삽입 이미지
 


◎ 다운로드
http://ctags.sourceforge.net
http://rpmfind.net

◎ ctags 설정및 기본 사용법
#pwd
#/usr/src/linux-2.4
# ctags -R           // 태그 데이터베이스 생성.  tags 파일이 생성된다.

-- vim 에디터에서
: set tags=./tags           // set 명령어로 tags 변수에 생성한 태그 데이터베이스 지정
: set tags=./tags, /usr/src/linux-2.4/tags, /usr/include/tags           // 복수 지정도 가능

:tj [태그이름]  // 태그이름이 있는 파일을 리스트로 나열 한다.
:tn   // tj로 점프한 후 다음 tag로
:tp   // tj로 점프한 후 이전 tag로

사용자 삽입 이미지

                                  <그림> :tj printf 했을때의 실행 화면

◎  유용한 vim 내장 스크립트
 ~/.vimrc 에 추가

if version >= 500          // vim version 5.0이상
func! Sts()
 let st = expand("<cword>")           // 커서의 위치에 있는 단어를 st에 저장
 exe "sts ".st             // 예> sts tags_name 실행
endfunc
nmap, st :call Sts()<cr>            // st라고 명령을 내리면 Sts() 수행

func! Tj()
 let st = expand("<cword>")
 exe "tj ".st
endfunc
nmap ,tj :call Tj()<cr>
endif