✔️ 우분투에서 테스트하였습니다.
1 개념[ | ]
- Ctags Quickstart
- Ctags 퀵스타트
- Ctags의 설치와 간단한 사용법에 대한 설명
2 사전작업[ | ]
3 tags 파일 만들기[ | ]
- 프로젝트 디렉토리로 이동하여 아래 명령을 실행
Bash
Copy
ctags -R
Console
Copy
johnjeong@zetawiki:~/project$ ctags -R
johnjeong@zetawiki:~/project/test$ ll
합계 20
drwxrwxr-x 2 johnjeong johnjeong 4096 2월 7 23:08 ./
drwxrwxr-x 8 johnjeong johnjeong 4096 2월 7 23:06 ../
-rw-rw-r-- 1 johnjeong johnjeong 65 2월 7 23:07 a.php
-rw-rw-r-- 1 johnjeong johnjeong 30 2월 7 23:08 b.php
-rw-rw-r-- 1 johnjeong johnjeong 391 2월 7 23:08 tags
- →tags 파일이 생성된 것을 확인 할 수 있음
- 개별 파일 지정을 통해서도 생성이 가능
Bash
Copy
ctags 파일1 파일2 파일3
Console
Copy
johnjeong@zetawiki:~/project/test$ ctags a.php b.php
johnjeong@zetawiki:~/project/test$ ll
합계 20
drwxrwxr-x 2 johnjeong johnjeong 4096 2월 7 23:18 ./
drwxrwxr-x 8 johnjeong johnjeong 4096 2월 7 23:06 ../
-rw-rw-r-- 1 johnjeong johnjeong 65 2월 7 23:07 a.php
-rw-rw-r-- 1 johnjeong johnjeong 30 2월 7 23:08 b.php
-rw-rw-r-- 1 johnjeong johnjeong 391 2월 7 23:18 tags
- →각각의 파일 지정으로도 tags 파일이 생성된 것을 확인 할 수 있음
- 파일 이름도 tag에 포함하여 생성가능
Bash
Copy
ctags -R --extra=f .
- →"extra=f" 옵션을 추가하여 파일도 tag로 포함 되도록 함
4 tags 파일[ | ]
- tags 파일을 vi 에디터로 열어 확인
- tags 파일은 함수, 변수들이 어디에 있는지 등의 tag를 관리해주는 파일임
Bash
Copy
vi tags
Console
Copy
johnjeong@zetawiki:~/project/test$ vi tags
Console
Copy
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.syntaxhighlightforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.syntaxhighlightforge.net /official site/
!_TAG_PROGRAM_VERSION 5.9~svn20110310 //
printName a.php /^function printName() {$/;" f
- →printName 함수가 a.php 파일에 존재한다는 것을 확인 할 수 있음
5 사용법[ | ]
- tj 태그명으로 원하는 위치로 이동 가능
Bash
Copy
:tj 태그명
Console
Copy
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.syntaxhighlightforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.syntaxhighlightforge.net /official site/
!_TAG_PROGRAM_VERSION 5.9~svn20110310 //
printName a.php /^function printName() {$/;" f
~
~
~
~
~
~
:tj printName
Console
Copy
<?php
function printName() {
echo "Bart";
}
?>
- →tj printName 명령을 통해 printName 함수로 이동된 것을 확인 할 수 있음
- po명령으로 다시 tags 파일로 다시 돌아갈 수 있음
Bash
Copy
:po
Console
Copy
<?php
function printName() {
echo "Bart";
}
?>
~
~
~
~
~
~
~
:po
Console
Copy
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.syntaxhighlightforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.syntaxhighlightforge.net /official site/
!_TAG_PROGRAM_VERSION 5.9~svn20110310 //
printName a.php /^function printName() {$/;" f
~
~
~
~
~
~
"tags" 7L, 391C
- po명령을 통해 tags 파일로 다시 돌아옴
- stj 태그명으로 원하는 위치를 분할된 창을 통해 확인이 가능함
Bash
Copy
stj 태그명
Console
Copy
<?php
function printName() {
echo "Bart";
}
a.php 3,0-1 꼭대기
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.syntaxhighlightforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.syntaxhighlightforge.net /official site/
tags 1,1 꼭대기
"a.php" 7L, 65C
6 VIM 연동[ | ]
1. .vimrc 파일에 tags 위치 지정
Bash
Copy
vi ~/.vimrc
- .vimrc 파일 안에 아래와 같이 tags 파일의 위치를 지정해 줘야함
Bash
Copy
set tags=TAGS_FILE_PATH
Console
Copy
set tags=/home/johnjeong/project/test/tags
- →실제 tags 파일의 위치를 지정함
2. tags 파일을 열 필요없이 곧장 아래와 같이 입력하면 원하는 위치로 이동함
Console
Copy
<?php
include("./a.php");
printName();
?>
~
~
~
~
~
~
:tj printName
7 같이 보기[ | ]
편집자 Jmnote John Jeong Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.