편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
5번째 줄: | 5번째 줄: | ||
* Ctags의 설치와 간단한 사용법에 대한 설명 | * Ctags의 설치와 간단한 사용법에 대한 설명 | ||
== | ==설치== | ||
* | * 설치 여부 확인 | ||
<source lang="bash"> | |||
ctags --version | |||
</source> | |||
* 설치는 sudo apt-get 으로 설치 가능 | |||
<source lang="bash"> | |||
sudo apt-get install ctags | |||
</source> | |||
==tags 파일 만들기== | ==tags 파일 만들기== | ||
* 프로젝트 디렉토리로 이동하여 아래 명령을 실행 | * 프로젝트 디렉토리로 이동하여 아래 명령을 실행 | ||
< | <source lang="bash"> | ||
ctags -R | ctags -R | ||
</ | </source> | ||
< | <source lang="console"> | ||
johnjeong@zetawiki:~/project$ ctags -R | johnjeong@zetawiki:~/project$ ctags -R | ||
johnjeong@zetawiki:~/project/test$ ll | johnjeong@zetawiki:~/project/test$ ll | ||
24번째 줄: | 30번째 줄: | ||
-rw-rw-r-- 1 johnjeong johnjeong 30 2월 7 23:08 b.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 | -rw-rw-r-- 1 johnjeong johnjeong 391 2월 7 23:08 tags | ||
</ | </source> | ||
:→tags 파일이 생성된 것을 확인 할 수 있음 | :→tags 파일이 생성된 것을 확인 할 수 있음 | ||
* 개별 파일 지정을 통해서도 생성이 가능 | * 개별 파일 지정을 통해서도 생성이 가능 | ||
< | <source lang="bash"> | ||
ctags 파일1 파일2 파일3 | ctags 파일1 파일2 파일3 | ||
</ | </source> | ||
< | <source lang="console"> | ||
johnjeong@zetawiki:~/project/test$ ctags a.php b.php | johnjeong@zetawiki:~/project/test$ ctags a.php b.php | ||
johnjeong@zetawiki:~/project/test$ ll | johnjeong@zetawiki:~/project/test$ ll | ||
40번째 줄: | 46번째 줄: | ||
-rw-rw-r-- 1 johnjeong johnjeong 30 2월 7 23:08 b.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 | -rw-rw-r-- 1 johnjeong johnjeong 391 2월 7 23:18 tags | ||
</ | </source> | ||
:→각각의 파일 지정으로도 tags 파일이 생성된 것을 확인 할 수 있음 | :→각각의 파일 지정으로도 tags 파일이 생성된 것을 확인 할 수 있음 | ||
==tags 파일== | ==tags 파일== | ||
* tags 파일을 vi 에디터로 열어 확인 | * tags 파일을 vi 에디터로 열어 확인 | ||
<source lang="bash"> | |||
< | |||
vi tags | vi tags | ||
</ | </source> | ||
< | <source lang="console"> | ||
johnjeong@zetawiki:~/project/test$ vi tags | johnjeong@zetawiki:~/project/test$ vi tags | ||
</ | </source> | ||
< | <source lang="console"> | ||
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ | !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ | ||
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ | !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ | ||
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users. | !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ | ||
!_TAG_PROGRAM_NAME Exuberant Ctags // | !_TAG_PROGRAM_NAME Exuberant Ctags // | ||
!_TAG_PROGRAM_URL http://ctags. | !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ | ||
!_TAG_PROGRAM_VERSION 5.9~svn20110310 // | !_TAG_PROGRAM_VERSION 5.9~svn20110310 // | ||
printName a.php /^function printName() {$/;" f | printName a.php /^function printName() {$/;" f | ||
</ | </source> | ||
:→printName 함수가 a.php 파일에 존재한다는 것을 확인 할 수 있음 | :→printName 함수가 a.php 파일에 존재한다는 것을 확인 할 수 있음 | ||
==사용법== | ==사용법== | ||
* '''tj 태그명'''으로 원하는 위치로 이동 가능 | * '''tj 태그명'''으로 원하는 위치로 이동 가능 | ||
< | <source lang="bash"> | ||
:tj 태그명 | :tj 태그명 | ||
</ | </source> | ||
< | <source lang="console"> | ||
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ | !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ | ||
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ | !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ | ||
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users. | !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ | ||
!_TAG_PROGRAM_NAME Exuberant Ctags // | !_TAG_PROGRAM_NAME Exuberant Ctags // | ||
!_TAG_PROGRAM_URL http://ctags. | !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ | ||
!_TAG_PROGRAM_VERSION 5.9~svn20110310 // | !_TAG_PROGRAM_VERSION 5.9~svn20110310 // | ||
printName a.php /^function printName() {$/;" f | printName a.php /^function printName() {$/;" f | ||
90번째 줄: | 89번째 줄: | ||
~ | ~ | ||
:tj printName | :tj printName | ||
</ | </source> | ||
< | <source lang="console"> | ||
<?php | <?php | ||
function printName() { | function printName() { | ||
97번째 줄: | 96번째 줄: | ||
} | } | ||
?> | ?> | ||
</ | </source> | ||
:→tj printName 명령을 통해 printName 함수로 이동된 것을 확인 할 수 있음 | :→tj printName 명령을 통해 printName 함수로 이동된 것을 확인 할 수 있음 | ||
* '''po'''명령으로 다시 tags 파일로 다시 돌아갈 수 있음 | * '''po'''명령으로 다시 tags 파일로 다시 돌아갈 수 있음 | ||
< | <source lang="bash"> | ||
:po | :po | ||
</ | </source> | ||
< | <source lang="console"> | ||
<?php | <?php | ||
function printName() { | function printName() { | ||
118번째 줄: | 117번째 줄: | ||
~ | ~ | ||
:po | :po | ||
</ | </source> | ||
< | <source lang="console"> | ||
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ | !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ | ||
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ | !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ | ||
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users. | !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ | ||
!_TAG_PROGRAM_NAME Exuberant Ctags // | !_TAG_PROGRAM_NAME Exuberant Ctags // | ||
!_TAG_PROGRAM_URL http://ctags. | !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ | ||
!_TAG_PROGRAM_VERSION 5.9~svn20110310 // | !_TAG_PROGRAM_VERSION 5.9~svn20110310 // | ||
printName a.php /^function printName() {$/;" f | printName a.php /^function printName() {$/;" f | ||
135번째 줄: | 134번째 줄: | ||
~ | ~ | ||
"tags" 7L, 391C | "tags" 7L, 391C | ||
</ | </source> | ||
: '''po'''명령을 통해 tags 파일로 다시 돌아옴 | : '''po'''명령을 통해 tags 파일로 다시 돌아옴 | ||
*'''stj 태그명'''으로 원하는 위치를 분할된 창을 통해 확인이 가능함 | *'''stj 태그명'''으로 원하는 위치를 분할된 창을 통해 확인이 가능함 | ||
< | <source lang="bash"> | ||
stj 태그명 | stj 태그명 | ||
</ | </source> | ||
< | <source lang="console"> | ||
<?php | <?php | ||
function printName() { | function printName() { | ||
150번째 줄: | 149번째 줄: | ||
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ | !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ | ||
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ | !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ | ||
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users. | !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ | ||
!_TAG_PROGRAM_NAME Exuberant Ctags // | !_TAG_PROGRAM_NAME Exuberant Ctags // | ||
!_TAG_PROGRAM_URL http://ctags. | !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ | ||
tags 1,1 꼭대기 | tags 1,1 꼭대기 | ||
"a.php" 7L, 65C | "a.php" 7L, 65C | ||
</ | </source> | ||
==VIM 연동== | ==VIM 연동== | ||
1. .vimrc 파일에 tags 위치 지정 | 1. .vimrc 파일에 tags 위치 지정 | ||
< | <source lang="bash"> | ||
vi ~/.vimrc | vi ~/.vimrc | ||
</ | </source> | ||
* .vimrc 파일 안에 아래와 같이 tags 파일의 위치를 지정해 줘야함 | * .vimrc 파일 안에 아래와 같이 tags 파일의 위치를 지정해 줘야함 | ||
< | <source lang="bash"> | ||
set tags=TAGS_FILE_PATH | set tags=TAGS_FILE_PATH | ||
</ | </source> | ||
< | <source lang="console"> | ||
set tags=/home/johnjeong/project/test/tags | set tags=/home/johnjeong/project/test/tags | ||
</ | </source> | ||
:→실제 tags 파일의 위치를 지정함 | :→실제 tags 파일의 위치를 지정함 | ||
2. tags 파일을 열 | 2. tags 파일을 열 필요 없이 곧장 아래와 같이 입력하면 원하는 위치로 이동함 | ||
< | <source lang="console"> | ||
<?php | <?php | ||
include("./a.php"); | include("./a.php"); | ||
186번째 줄: | 185번째 줄: | ||
~ | ~ | ||
:tj printName | :tj printName | ||
</ | </source> | ||
==같이 보기== | ==같이 보기== | ||
* [[ctags]] | * [[ctags]] | ||
* [[vi]] | * [[vi]] | ||
[[분류: ctags]] | [[분류: ctags]] |