"Ctags 튜토리얼"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
(사용자 3명의 중간 판 44개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{테스트|우분투}}
==개념==
==개념==
;Ctags Quickstart
;Ctags Quickstart
4번째 줄: 5번째 줄:
* Ctags의 설치와 간단한 사용법에 대한 설명
* Ctags의 설치와 간단한 사용법에 대한 설명


==설치==
==사전작업==
<source lang="console">
* [[우분투 ctags 설치]]
johnjeong@zetawiki:~$ sudo apt-get install ctags
:또는 [[CentOS ctags 설치]]
</source>
 
==tags 파일 만들기==
* 프로젝트 디렉토리로 이동하여 아래 명령을 실행
<syntaxhighlight lang="bash">
ctags -R
</syntaxhighlight>
 
<syntaxhighlight lang="console">
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
</syntaxhighlight>
:→tags 파일이 생성된 것을 확인 할 수 있음
 
* 개별 파일 지정을 통해서도 생성이 가능
<syntaxhighlight lang="bash">
ctags 파일1 파일2 파일3
</syntaxhighlight>
<syntaxhighlight lang="console">
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
</syntaxhighlight>
:→각각의 파일 지정으로도 tags 파일이 생성된 것을 확인 할 수 있음
 
* 파일 이름도 tag에 포함하여 생성가능
<syntaxhighlight lang='bash'>
ctags -R --extra=f .
</syntaxhighlight>
:→"extra=f" 옵션을 추가하여 파일도 tag로 포함 되도록 함
 
==tags 파일==
* tags 파일을 vi 에디터로 열어 확인
* tags 파일은 함수, 변수들이 어디에 있는지 등의 tag를 관리해주는 파일임
<syntaxhighlight lang="bash">
vi tags
</syntaxhighlight>
<syntaxhighlight lang="console">
johnjeong@zetawiki:~/project/test$ vi tags
</syntaxhighlight>
 
<syntaxhighlight lang="console">
!_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
</syntaxhighlight>
:→printName 함수가 a.php 파일에 존재한다는 것을 확인 할 수 있음
 
==사용법==
* '''tj 태그명'''으로 원하는 위치로 이동 가능
<syntaxhighlight lang="bash">
:tj 태그명
</syntaxhighlight>
<syntaxhighlight lang="console">
!_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
</syntaxhighlight>
<syntaxhighlight lang="console">
<?php
function printName() {
    echo "Bart";
}
?>
</syntaxhighlight>
:→tj printName 명령을 통해 printName 함수로 이동된 것을 확인 할 수 있음
 
* '''po'''명령으로 다시 tags 파일로 다시 돌아갈 수 있음
<syntaxhighlight lang="bash">
:po
</syntaxhighlight>
<syntaxhighlight lang="console">
<?php
function printName() {
    echo "Bart";
}
?>
~                                                                             
~                                                                             
~                                                                             
~                                                                             
~                                                                             
~                                                                             
~                                                                             
:po
</syntaxhighlight>
 
<syntaxhighlight lang="console">
!_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 
</syntaxhighlight>
: '''po'''명령을 통해 tags 파일로 다시 돌아옴
 
*'''stj 태그명'''으로 원하는 위치를 분할된 창을 통해 확인이 가능함
<syntaxhighlight lang="bash">
stj 태그명
</syntaxhighlight>
<syntaxhighlight lang="console">
<?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
</syntaxhighlight>
 
==VIM 연동==
1. .vimrc 파일에 tags 위치 지정
<syntaxhighlight lang="bash">
vi ~/.vimrc
</syntaxhighlight>
* .vimrc 파일 안에 아래와 같이 tags 파일의 위치를 지정해 줘야함
<syntaxhighlight lang="bash">
set tags=TAGS_FILE_PATH
</syntaxhighlight>
 
<syntaxhighlight lang="console">
set tags=/home/johnjeong/project/test/tags
</syntaxhighlight>
:→실제 tags 파일의 위치를 지정함
 
2. tags 파일을 열 필요없이 곧장 아래와 같이 입력하면 원하는 위치로 이동함
<syntaxhighlight lang="console">
<?php
include("./a.php");
 
printName();
?>
~                                                                             
~                                                                             
~                                                                             
~                                                                             
~                                                                             
~                                                                                                                                                     
:tj printName
</syntaxhighlight>
 
==같이 보기==
* [[우분투 ctags 설치]]
* [[ctags]]
* [[vi]]
 
[[분류: ctags]]

2020년 11월 2일 (월) 00:55 기준 최신판

1 개념[ | ]

Ctags Quickstart
Ctags 퀵스타트
  • Ctags의 설치와 간단한 사용법에 대한 설명

2 사전작업[ | ]

또는 CentOS ctags 설치

3 tags 파일 만들기[ | ]

  • 프로젝트 디렉토리로 이동하여 아래 명령을 실행
ctags -R
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 파일이 생성된 것을 확인 할 수 있음
  • 개별 파일 지정을 통해서도 생성이 가능
ctags 파일1 파일2 파일3
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에 포함하여 생성가능
ctags -R --extra=f .
→"extra=f" 옵션을 추가하여 파일도 tag로 포함 되도록 함

4 tags 파일[ | ]

  • tags 파일을 vi 에디터로 열어 확인
  • tags 파일은 함수, 변수들이 어디에 있는지 등의 tag를 관리해주는 파일임
vi tags
johnjeong@zetawiki:~/project/test$ vi tags
!_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 태그명으로 원하는 위치로 이동 가능
:tj 태그명
!_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
<?php
function printName() {
    echo "Bart";
}
?>
→tj printName 명령을 통해 printName 함수로 이동된 것을 확인 할 수 있음
  • po명령으로 다시 tags 파일로 다시 돌아갈 수 있음
:po
<?php
function printName() {
    echo "Bart";
}
?>
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
:po
!_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 태그명으로 원하는 위치를 분할된 창을 통해 확인이 가능함
stj 태그명
<?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 위치 지정

vi ~/.vimrc
  • .vimrc 파일 안에 아래와 같이 tags 파일의 위치를 지정해 줘야함
set tags=TAGS_FILE_PATH
set tags=/home/johnjeong/project/test/tags
→실제 tags 파일의 위치를 지정함

2. tags 파일을 열 필요없이 곧장 아래와 같이 입력하면 원하는 위치로 이동함

<?php
include("./a.php"); 

printName();
?>
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                                                                                                      
:tj printName

7 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}