[devtool] Sublime Text 초기 설정과 팁

Published: by Creative Commons Licence

참고 문서

버전 정보

  • Build 4xxx

개요

서브라임 텍스트 시리즈의 기본 설정, 단축키 등 정리.

기본 설정

터미널에서 서브라임 실행하기

Windows에선 아래 세 가지 방법이 있는데:

  • 설치 폴더(기본 설정이면 C:\Program Files\Sublime Text 3)를 시스템 환경 변수 Path에 추가한다.
  • 설치 폴더의 subl.exe 파일을 C:\Windows\System32 경로에 복사한다.
  • 파워셸 프로파일에 별칭을 추가한다.

세 번째 방법을 추천. 방법은 아래 코드를 복사해서 파워셸에 입력한다:

if (!(Test-Path -Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force
}
"Set-Alias sb 'C:\Program Files\Sublime Text\subl.exe'" >> $PROFILE
. $PROFILE

이게 끝이고 이제 sb로 서브라임 실행 가능:

sb  # 서브라임 실행
sb .  # 새 서브라임을 실행하면서 현재 경로를 Open Folder로 열기
sb .\.gitignore  # .gitignore 파일을 서브라임으로 열기

WSL에선 셸 설정파일(rc)에 호스트 PC의 경로를 별칭으로 추가하면 끝:

alias sb='/mnt/c/Program\ Files/Sublime\ Text/subl.exe'

코드 스니펫 추가하기

서브라임에서 자동 완성 항목을 추가하는 방법이다.

메뉴에서 Tools > Developer > New Snippet... 을 누르면 새 스니펫 파일이 열린다. 거기에 아래처럼 작성한 뒤:

<!-- javascript-cl.sublime-snippet -->
<snippet>
  <content><![CDATA[
console.log(${1});
]]></content>
  <tabTrigger>cl</tabTrigger>
  <scope>source.js</scope>
</snippet>
<!-- javascript-cl2.sublime-snippet -->
<snippet>
  <content><![CDATA[
console.log('${1:msg}:', ${2:msg});
]]></content>
  <tabTrigger>cl2</tabTrigger>
  <scope>source.js</scope>
</snippet>
<!-- javascript-cd.sublime-snippet -->
<snippet>
  <content><![CDATA[
console.log(${1});
]]></content>
  <tabTrigger>cd</tabTrigger>
  <scope>source.js</scope>
</snippet>
<!-- javascript-cd2.sublime-snippet -->
<snippet>
  <content><![CDATA[
console.debug('${1:msg}:', ${2:msg});
]]></content>
  <tabTrigger>cd2</tabTrigger>
  <scope>source.js</scope>
</snippet>

확장자를 .sublime-snippet으로 해서 패키지 파일 디렉터리에 저장한다. 패키지 파일 디렉터리는 윈도우 기준 %APPDATA%\Sublime Text\Packages\User이며 저장할 때 자동으로 지정된다.

⚠️ <snippet> 태그는 스니펫 파일의 루트 태그여야 한다. 그러니까 스니펫 한 개당 파일 하나씩 추가해야한다.

작성한 파일을 다시 열어보고 싶으면 View Package File 명령을 실행할 것.

패키지(플러그인) Sublime Text Packages

패키지는 서브라임 커뮤니티에서 공유되는 확장 기능이다.

일단 package control을 설치한다. 커맨드 팔레트(ctrl + shift + p)에서 'install package control' 입력 후 엔터.

설치가 끝나면 (ctrl + ` 눌러서 확인 가능) 다시 커맨드 팔레트에서 'Package Control: Install Package' 입력하면 패키지 검색 창이 뜬다. 여기서 원하는 패키지 검색 후 엔터 누르면 됨.

추천 패키지

  • StyleToken: 파일 내에서 특정 단어별 하이라이팅
  • FileDiffs: 간단한 diff 뷰어. diff 성능 자체는 그닥… (shell의 기본 diff와 거의 비슷)
  • ConvertToUTF8: EUC-KR로 작성된 파일을 UTF-8로 전환해서 열어주는 패키지. 이 패키지를 활성화하면 파일을 열때마다 인코딩을 물어봐서 좀 귀찮음
  • ⭐BracketHighlighter: 브라켓 하이라이터. 괄호가 어디서 시작하고 어디서 끝나는지 행번호 표시영역에 아이콘으로 표시해 준다.
  • Sync View Scroll: 여러 view의 스크롤을 동기화하는 패키지. 심지어 좌우 스크롤도 동기화된다.
  • URLEncode: URL 인코드-디코드 기능 제공.
  • HexViewer: 주기능은 HEX 파일 뷰어, 부기능으로 HEX-텍스트간 변환과 해시 생성 등을 지원하는 패키지. 좌측에 HEX, 우측에 일반 텍스트를 동시에 표시해줘서 포커스된 문자를 하이라이팅 해주는 등 뷰어 기능이 쓸만함.
  • ⭐SideBarEnhancements: 서브라임의 부실한 사이드바(파일 탐색기) 기능을 보충해주는 패키지.
  • MarkdownPreview: 마크다운 파일 브라우저로 미리보기
  • ⭐Emmet: 예전 이름은 Zen coding이었던 축약어로 마크업을 완성해주는 Emmet 지원 패키지. Emmet 문법은 여기를 보면 됨.
  • Log Highlight: 로그 파일 가독성이 아주 약간 좋아짐.
  • ⭐Pretty JSON: JSON 문자열을 한 줄로 압축하거나 반대로 예쁘게 포맷해주는 플러그인
  • MoveTab: 탭의 위치를 좌우로 이동하는 단축키를 추가한다. 이 플러그인을 설치하면 기본 단축키인 next view extend(다음 탭을 현재 화면에 나눠서 보기)을 덮어쓴다.
    • ctrl + shift + pageup: 현재 탭의 위치를 왼쪽으로 이동
    • ctrl + shift + pagedown: 현재 탭의 위치를 오른쪽으로 이동
  • ⭐Insert Nums: 늘어난 캐럿만큼 순번을 자동으로 입력해줌. 시작 번호와 증가치를 지정할 수 있음
    • ctrl + alt + n: 순번 입력하기
    • ctrl + alt + shift + n: 미리보기 없이 순번 입력하기
  • ⭐Compare Side-By-Side: FileDiffs보다 보기 좋은 diff 뷰어. 단축키는 alt + n(다음), alt + p(이전)
  • ⭐Clickable URLs: URL에 해당하는 텍스트에 커서를 놓고(혹은 드래그 후) 단축키를 누르면 브라우저로 연결함. 설치하면 기본 단축키인 replace_all을 덮어쓴다.
    • ctrl + alt + enter: 브라우저에서 URL 열기
  • ⭐InsertDate: 2015년이 마지막 커밋이지만 서브라임4에서도 잘 작동하는 날짜 + 시간 입력기
    • f5: 기본 단축키
    • alt + f5: strftime 포맷 커스텀 입력
  • ⭐Case Conversion: 영단어 케이스 변환 기능 제공. 사용 방법은 커맨트 팔레트에서 'case convert' 치면 주르륵 나옴.
    • 두문자어를 무시('userID'를 'userId'로 변환)하고 싶은 경우 Preferences > Package Settings > Case Conversion > Settings로 진입한 뒤 {"detect_acronyms": false} 이걸 붙여넣으면 된다.

작성자 저장용 사용자 설정

settings - user

{
  "fallback_encoding": "UTF-8",
  "font_face": "Consolas",
  "font_size": 10,
  "tab_completion": false,
  "auto_complete": true,
  "auto_complete_commit_on_tab": true,
  "auto_complete_with_fields": true,
  "show_encoding": true,
  "show_line_endings": true,
  "tab_size": 2,
  "translate_tabs_to_spaces": true,
  "save_on_focus_lost": true,
  "show_full_path": false,
  "show_rel_path": true,
  "open_tabs_after_current": false
}

key bindings - user

[
  { "keys": ["f1"], "command": "show_overlay", "args": {"overlay": "command_palette"} },
  { "keys": ["ctrl+shift+d"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
  { "keys": ["ctrl+shift+k"], "command": "duplicate_line" },
  { "keys": ["ctrl+shift+s"], "command": "save_all" },
  { "keys": ["ctrl+k", "ctrl+k"], "command": "do_nothing" },
  { "keys": ["ctrl+k", "ctrl+backspace"], "command": "do_nothing" },
  { "keys": ["ctrl+b"], "command": "do_nothing" },
  { "keys": ["ctrl+tab"], "command": "next_view" },
  { "keys": ["ctrl+shift+tab"], "command": "prev_view" },
  { "keys": ["ctrl+alt+shift+pagedown"], "command": "next_view", "args": {"extend": true} },
  { "keys": ["ctrl+alt+shift+pageup"], "command": "prev_view", "args": {"extend": true} }
]

걸리적거려서 기본 단축키 몇 개는 끔.

기본 단축키

Build 3126 이후에 기록함.

무슨 명령인지 모르겠으면 여기를 보자.

단어 선택

  • ctrl + shift + left/right: 단어(words) 단위의 선택 영역을 좌우로 확장한다. 단어란 언더바_를 포함한 연속적인 단어 구성 문자를 의미한다. (abc, abcDef, ABC_DEF, …)
  • alt + shift + left/right: 보조 단어(subwords) 단위의 선택 영역을 확장한다. 단어와 다르게 보조 단어는 앞단어와 다른 대소문자와 모든 특수문자로 구분된다.

멀티 캐럿(Multiple Selection)

서브라임에선 Expand Selection 기능으로 분류한다.

캐럿을 추가해 여러 지역에서 작업을 동시에 할 때 사용하는 기능. 에디터마다 부르는 이름이 제각각이다. 서브라임은 Expand Selection, 아톰과 VSCODE는 Add Selection, 인텔리제이는 Select Next Occurrence 😒

  • ctrl + d: 선택한 단어와 동일한 다음 단어에 캐럿 추가
  • ctrl + u: 캐럿 추가 되돌리기
  • ctrl + alt + 방향키 위/아래: select_lines 위나 아래로 멀티 캐럿
  • alt + f3: 현재 파일에서 선택한 단어와 같은 모든 단어에 멀티 캐럿
  • ctrl + shift + l: split_selection_into_lines 선택한 영역에서 각 라인마다 캐럿 분리

커서/포커스 이동

  • alt + - : Jump Back 이전 포커스로 이동. 이클립스의 alt + ←와 비슷
  • alt + shift + '+': Jump Forward 다음 포커스로 이동. 이클립스의 alt + →와 비슷
  • ctrl + r: 현재 파일의 모든 심볼(함수, 변수, 프로퍼티, 제목 등) 보기. 선택하면 포커스 이동
  • ctrl + ;: 현재 파일의 모든 단어 보기. 선택하면 포커스 이동
  • ctrl + shift + r: 현재 프로젝트(혹은 열려있는 폴더)의 모든 심볼 보기. 선택하면 포커스 이동
  • f12: Goto Definition 현재 커서가 있는 함수나 메서드의 선언부로 이동. 제한적으로 작동하는 기능(Syntax 보기 형태와 문서의 내용이 알맞아야 함)이다.
  • shift + f12: Goto Reference 함수나 메서드를 사용(참조)하고 있는 라인으로 이동.
  • ctrl + 0: 사이드바로 포커스 이동
  • alt + 숫자키: 열려진 탭 사이의 포커스 이동
  • alt + shift + 숫자키: 레이아웃 나누기
  • ctrl + 숫자키: 레이아웃이 나눠진 상태에서 다른 레이아웃으로 포커스 이동
  • ctrl + r: Goto Symbol
  • ctrl + shift + r: Goto Project Symbol

Code Folding

특정 코드 영역을 접고 펴는 기능

  • ctrl + shift + [: Fold (보통은 괄호 등으로 작성된 코드 블록을) 접기
  • ctrl + shift + ]: Unfold 펼치기
  • ctrl + k, ctrl + 1: Fold All 모두 접기
  • ctrl + k, ctrl + j: Unfold All 접혀있는 코드 전부 펼치기
  • ctrl + k, ctrl + 숫자키: Fold Level 2~9 코드 깊이에 따라 해당하는 모든 코드를 접는 기능이다. 숫자키는 2부터 9까지 가능

편집

  • ctrl + shift + j: 라인 단위 병합
  • F9: 대소문자 무시하고 라인 단위 알파벳 오름차순 정렬
  • ctrl + F9: 라인 단위 알파벳 오름차순 정렬
  • ctrl + m: 가까운 닫는 괄호(bracket) 혹은 여는 괄호로 이동.
  • ctrl + shift + m: 가까운 닫는 괄호까지 텍스트 선택.

오버레이 Overlay

  • ctrl + `: 콘솔창
  • ctrl + shift + p: Command Palatte 빠른 명령어 탐색창 열기
  • ctrl + p: (폴더 열기 이후)빠른 파일 탐색창 열기
  • ctrl + r: 함수 단위 탐색창 열기
  • ctrl + g: 라인 이동
  • ctrl + ;: 키워드 탐색창 열기
  • ctrl + alt + shift + p: Show Scope Name 스코프 이름 보기. 현재 캐럿이 위치한 곳 기준으로 스코프 정보를 툴팁으로 표시하는 기능이다. 그런데 소스 코드의 스코프가 아니라, 서브라임 텍스트의 환경 기준의 스코프를 의미한다. 그러니께 서브라임 패키지 개발자용 기능

매크로

  • ctrl + q: 매크로 기록 시작/종료
  • ctrl + shift + q: 매크로 실행 (하나밖에 안 되나 보다)

기타 조합형 단축키

  • ctrl + k: 단축키 시퀀스 시작
  • ctrl + k, ctrl + u: 대문자 변환
  • ctrl + k, ctrl + l: 소문자 변환
  • ctrl + k, ctrl + b: 사이드 바 토글. 서브라임 머지에도 같은 단축키로 작동함.

북마크 Bookmark

활성화된 파일 내에서만 작동하는 북마크 기능

  • ctrl + f2: 현재 캐럿 위치에 북마크 생성
  • f2: 다음 북마크로 이동
  • shift + f2: 이전 북마크로 이동
  • ctrl + shift + f2: 현재 파일의 북마크를 모두 삭제한다.
  • alt + f2: 모든 북마크 위치에 캐럿을 생성한다.

마크 Mark

현재 캐럿이 위치한 라인과 컬럼을 마킹하는 기능. 마킹지점을 기준으로 범위 선택이나 범위 삭제를 할 수 있다.

  • ctrl + k, ctrl + space: 마크 만들기
  • ctrl + k, ctrl + a: 현재 커서의 위치부터 마크까지 선택(드래그 블록)
  • ctrl + k, ctrl + w: 현재 커서의 위치부터 마크까지 삭제
  • ctrl + k, ctrl + x: 현재 커서의 위치에 새로 마크를 만들고, 이미 마킹되어 있던 지점으로 커서 이동
  • ctrl + k, ctrl + g: 마크 삭제
  • ctrl + k, ctrl + y: Yank 기능이라는데 어떻게 작동하는 건지 몲.

프로젝트, 워크스페이스

  • alt + shift + p: Quick Switch Project 빠른 프로젝트 변경 창 열기