Ctags는 소스 탐색 및 이동을 도와주는 프로그램입니다. Ctags는 소스를 분석하여 tags를 미리 만들어두고 탐색하는데 사용합니다. 서브라임텍스트에서도 Ctags를 사용할 수 있습니다.
설치 과정은 다음과 같습니다.
- 먼저 자신의 OS에 CTags를 설치하고
- SublimeText에는 CTags 플러그인을 설치해야 합니다.
로컬에 CTags 설치
우분투/데비안 사용자라면 apt로 CTags를 설치할 수 있습니다.
$ sudo apt install ctags
MAC 또는 Windows에서 Ctags를 설치하는 방법은 SublimeText-Ctags를 참고해주세요.
SublimeText에서 CTags 플러그인 설치
Ctrl + Shift + P
를 눌러 Install Package
를 실행합니다. 그리고 CTags
를 검색하여 설치를 합니다.
태그 정보 만들기
CTags로 소스를 탐색하려면 먼저 태그 정보를 미리 만들어두어야 합니다.
아래 화면처럼 탐색하고 싶은 프로젝트 폴더를 우클릭하면 CTags: Rebuild Tags
라는 메뉴가 나옵니다.
이 메뉴를 클릭하면 태그 정보들이 생성되고 동일한 디렉토리의 .tags
라는 파일로 저장됩니다. 이 파일이 생성되었다면 소스 탐색을 할 수 있습니다.
소스 탐색하기(1)
탐색하고 싶은 메소드에 커서를 위치하고 ctrl + >
를 눌러보세요. 그럼 그 메소드가 정의된 위치로 이동합니다.
다시 돌아가고 싶다면 ctrl + <
를 누르시면 됩니다.
예를들어, 아래 코드에서 "PackageManager.NameNotFoundException"에 커서를 두고 ctrl + >
를 누르면 정의된 위치로 이동합니다.
필드 또는 메소드가 여러 위치에 정의되었다면 아래 화면처럼 옵션이 보여지고 이 중에 선택할 수 있습니다.
소스 탐색하기(2)
위의 방법은 코드 위치에서 탐색하는 방법입니다. 소스파일을 꼭 열고 이동을 해야 하는 방법이죠.
소스파일을 열지 않고 이름을 알고 있는 메소드나 클래스로 바로 이동하고 싶을 때가 있습니다.
그럴 때는 ctrl + t + y
를 사용하면 됩니다. 이 단축키를 입력하면 아래쪽에 창이 뜨면서 이동하고 싶은 클래스나 메소드를 입력할 수 있습니다.
예를들어, ctrl + t + y
를 누르고 ActivityManager
를 입력하면
아래 처럼 바로 정의된 위치로 이동할 수 있습니다. 여러 위치에 정의되었다면 선택할 수 있는 창이 나옵니다.
파일 이름을 검색하여 소스 열기
파일 이름을 검색하여 소스를 여는 것은 SublimeText에서 제공하는 방법입니다.
ctrl + shift + p
를 누르면 프로젝트의 모든 파일을 검색할 수 있는 창이 나옵니다. 검색해서 원하는 파일을 열 수 있습니다.
파일 내의 심볼 찾기
이 기능도 SublimeText에서 제공하는 것이고, 파일 내에 정의된 메소드들을 찾을 때 쓰는 방법입니다.
소스 파일에서 ctrl + r
을 누르면 파일 내에 정의된 심볼(메소드)들을 찾을 수 있는 창이 나옵니다.
메소드만 검색되기 때문에 텍스트를 검색하는 것보다 메소드를 찾기 쉽습니다.
CTags 플러그인 단축키 정리
CTags 플러그인에서 제공하는 단축키를 정리해보았습니다.
Command | Key Binding | Alt Binding |
---|---|---|
rebuild ctags | ctrl+t, ctrl+r | |
navigate to definition | ctrl+t, ctrl+t | ctrl+> |
jump prev | ctrl+t, ctrl+b | ctrl+< |
show symbols | alt+s | |
show symbols (all files) | alt+shift+s | |
show symbols (suffix) | ctrl+alt+shift+s |
CTags 플러그인 단축키 변경
SublimeText 메뉴에서 Preferences -> Package Settings -> CTags -> Key Bindings - Default
에 들어갑니다.
여기에 플러그인에서 제공하는 단축키가 정의되어있습니다. 변경하고 싶은 부분을 따로 복사하여 Key Bindings - User
에 재정의합니다. User의 내용이 가장 마지막에 덮어써지는 것이기 때문에, 다시 기본설정으로 돌아가고 싶으면 User에 정의한 것을 삭제하면 됩니다.
[
{
"command": "navigate_to_definition",
"keys": ["ctrl+t", "ctrl+t"]
},
{
"command": "navigate_to_definition",
"keys": ["ctrl+shift+period"]
},
{
"command": "search_for_definition",
"keys": ["ctrl+t", "ctrl+y"]
},
{
"command": "jump_prev",
"keys": ["ctrl+t", "ctrl+b"]
},
....
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - pip와 requirements.txt로 패키지 관리
- 유튜브 쇼츠(Shorts) 자막 끄기/켜기
- SOLID 원칙, 객체지향 설계 5가지 원칙
- Ubuntu 20.04 - Nginx로 React를 배포하는 방법
- 애드센스 '구글 검색 기능' 블로그에 추가
- 트위터 이메일 안오게, 알림 끄기
- 인스타그램 동영상, 사진 저장 방법
- Git 설치 방법 (Ubuntu, Windows)
- Python pip 설치 (Ubuntu / Windows)
- 마우스 우클릭 복사 방지 해제 방법 (크롬)
- Python 에러 해결, 'conda' 용어가 cmdlet, 함수, 스크립트 ... 인식되지 않습니다.
- Python 에러 해결, AttributeError: module 'jwt' has no attribute 'encode'
- Atom - 코드 자동 정렬
- Sublime Text - 코드 자동 정렬, 단축키 설정
- VSCode에서 탭 간격 설정 (Tab to 4 spaces)
- Visual Studio Code에서 코드 자동 정렬
- 구글 검색 기록 삭제, 자동 저장 끄기 (PC, 모바일)
- 안드로이드 개발자 옵션 활성화, USB 디버깅 켜기
- 유튜브 채널 차단, 해제 방법 (PC, 모바일)
- 유튜브 미리보기 자동재생 끄기 (자동 소리 끄기/켜기)
- PC에서 유튜브 모바일 버전(m.youtube.com)으로 보기
- 모바일에서 유튜브 PC버전으로 보기
- 유튜브 시간 링크 만들기, 댓글에 시간 태그 입력하기
- 유튜브 스크립트 함께 보기, 자막 추출 방법
- 유튜브 알고리즘 초기화, 검색 기록과 시청 기록 삭제
- 유튜브 '싫어요' 숫자 다시 보이게 하기
- 구글 크롬, 방금 닫은 탭 다시 열기
- Maven으로 Java프로젝트 build하는 방법
- node.js, npm 버전 확인 방법 (터미널, cmd 명령어)
- GitLab - 'pre-receive hook declined' 에러 해결
- Javacript Heap Out Of Memory 문제 해결
- SSH key 생성하고 GitHub에 등록
- GMT, UTC의 차이점
- Linux(Ubuntu)에 Adobe Photoshop, Illustrator 설치하는 방법