## ctags 사용하기 ctags: 프로그램 소스코드에서 태그(전역변수 선언, 함수 정의, 매크로 선언)들의 데이터베이스(tags 파일)를 생성하는 유닉스 명령이다. ctags의 설치 여부 확인 $ ctags --help 설치 되지 않았다면 설치 http://ctags.sourceforge.net http://rpm.pbone.net 태그 데이터베이스 만들기 $ ctags -R 위 명령을 수행하면 tags 파일이 만들어짐 `.vimrc`에 설정할 내용 set tags=./tags,other/path/tags,another/path/tags 예) set tags=./tags,./TAGS,tags,TAGS,../tags,../../tags,/usr/include/tags,/usr/local/include/tags *참고:* janus의 기본 설정 set tags=./tags,./TAGS,tags,TAGS *참고:* sublime text 2에서 ctags 패키지 컨트롤 플러그인은 .tags를 기본 파일명으로 사용한다. sublime text 2와 공유하기 위해서는 .tags을 추가해서 사용해 보았으나 vim에서 태그를 찾지 못하였다. 해결책으로 sublime text 2에서 만들 .tags 파일 만들고 `ln -s .tags tags` 명령을 수행하여 vim에서는 링크를 사용하도록 한다. 태그명령 요약 * :ta [tag] or `+]`, :ts[tag] or :tj [tag]: 스택을 사용하여 [tag]로 점프 * :po or `+t`: 스택의 내용을 pop하고 그 위치로 점프 * :sts [tag], :stj [tag]: 창을 수평 분할 하여 새로 생성된 창에 표시 * :tn: tj, ts의 다음 태그로 점프 * :tp: tj, ts의 이전 태그로 점프 * :tr: tj, ts의 처음 태그로 점프 * :tl: tj, ts의 마지막 태그로 점프 * :pts [tag]: 창을 수평 분할 하여 새로 생성된 창에 표시. 커서는 현재 위치에 유지함. * :ptj [tag]: 미리보기 윈도우에 태그가 정의된 형식을 보여줌. * :ptn: ptj, pts의 다음 태그로 점프 * :ptp: ptj, pts의 이전 태그로 점프 * :ptr: ptj, pts의 처음 태그로 점프 * :ptl: ptj, pts의 마지막 태그로 점프 태그로 바로 이동하여 vim 실행 하기 $ vi -t start_kernel ####편리하게 사용하기 위한 단축키 지정 아래 내용을 .vimrc에 추가한다. if version >= 500 func! Sts() let st = expand("") exe "sts ".st endfunc nmap ,st :call Sts() func! Tj() let st = expand("") exe "tj ".st endfunc nmap ,tj :call Tj() endif ###함수의 원형 간단 확인 단축키 표준모드에서 `[i` 키를 누르면 화면 하단에 함수의 원형을 확인할 수 있다. ###지역변수의 선언 부분으로 이동 단축키 표준모드에서 찾고자 하는 지역변수 위에 커서를 위치한 상태에서 `gd` 키를 입력하면 지역변수가 선언된 위치로 이동한다.