Skip to content

Latest commit

 

History

History
83 lines (71 loc) · 6.37 KB

keys_basic.md

File metadata and controls

83 lines (71 loc) · 6.37 KB

키 조합에 대하여

  • 키 조합에 대한 기본 정보는 :help key-notation으로 볼 수 있습니다.
키 표기 의미 예제
<C-키> Ctrl+키 <C-v> : CTRL을 누른 상태에서 v를 누른다.
<A-키> Alt+키 <A-Space> : ALT를 누른 상태에서 Space키를 누른다.
<M-키> Meta+키 <M-CR> : META키를 누른 상태에서 Enter키를 누른다.
<S-키> Shift+키 <S-BS> : Shift키를 누른 상태에서 backspace키를 누른다.
<D-키> Command+키 (mac에서만 가능) <D-F1> : command키를 누른 상태에서 F1키를 누른다.

이 문서를 처음 읽는 VIM 초심자라면

  • <C-a>CTRL키와 a키를 함께 누르는 의미라는 정도만 알고 넘어가도 됩니다.
  • 아래부터는 VIM에 좀 익숙해지고, 자신만의 설정 파일이 필요할 때 읽으셔도 됩니다.

META 키에 대하여

  • META키는 오래전에 터미널 제조사에 따라 ALT키 개념이 통일되지 않았을 때 나온 키 값으로, 요즘은 그냥 ALT키라고 생각하면 됩니다.
  • 만약 META 키가 없는 터미널에서 META 키를 입력하려면 <ESC>키를 누르면 됩니다.

M-c를 입력하고 싶다면 <ESC>를 누르고, c를 누릅니다.

  • option키 조합이 특수문자 입력인 mac 터미널에서는 <ESC>를 사용하면 됩니다.
    • 또는 터미널 설정에 들어가 Settings - Keyboard - Use option as meta key를 체크해줍니다.
  • iTerm2 에서 META키를 사용하고 싶다면 Preferences > Profiles > Keys에서 option키를 +Esc로 매핑해줍니다.

하지만 이렇게 하면 VIM에서 option키를 사용하기 난감해집니다. MacVIM에서 macmeta를 쓰거나 다른 방식으로 option키를 쓰고 있다면 +Esc 설정이 더 불편할 수 있기 때문에, 차라리 $ set -o vi 사용이 낫다고 봅니다.

key-notation 일람

  • 키 표기는 VIM 문서나 .vimrc같은 설정 파일에서 사용하는 것으로, 잘 알아두면 여러모로 도움이 됩니다.

  • 추가 입력 방법은 키보드에서 해당 키를 입력해 입력하는 방법 외의 다른 방법으로 입력하는 방법을 의미합니다.

  • 예를 들어 backspace의 경우 추가 입력 방법이 <C-h>인데, 키보드에서 키가 망가졌거나 입력 상황에 따라 불가능하다거나 하는 이유로 backspace키를 입력할 수 없다면 <C-h>를 통해 backspace를 입력할 수 있습니다.

  • 추가 입력 방법을 몰라도 VIM을 사용하는 데에는 큰 문제가 없습니다. 그러나 VIM을 고급스럽게 사용하려 할 때 좋은 힌트가 되는 지식들이라 할 수 있습니다.

    가령 <C-[><Esc>입력을 발생시킨다는 것을 알고 있다면, <Esc>입력이 곤란한 상황이 되었을 때 도움이 될 수 있습니다.

    또한 :map을 통해 새로운 단축키를 지정할 때에도 사용할 수 있는데, :map <NL> ...:map <C-j> ...와 동일하게 작동합니다.

키 표기 설명 추가 입력 방법
<BS> backspace <C-h>
<Tab> tab <C-i>
<NL> linefeed. 현대적으로는 <ENTER>로 보면 된다. <C-j>
<FF> formfeed <C-l>
<CR> carriage return. <ENTER>로 보면 된다. <C-m>
<Return> <CR>과 같다.
<Enter> <CR>과 같다.
<Esc> escape <C-[>
<Space> space
<lt> less-than <
<Bslash> backslash \
<Bar> vertical bar |
<Del> delete
<Up> cursor-up
<Down> cursor-down
<Left> cursor-left
<Right> cursor-right
<F1> - <F12> function keys 1 to 12
<Insert> insert key
<Home> home
<End> end
<PageUp> page-up
<PageDown> page-down
<kHome> keypad home
<kEnd> keypad end
<kPlus> keypad +
<kMinus> keypad -
<kMultiply> keypad *
<kDivide> keypad /
<kEnter> keypad Enter
<kPoint> keypad Decimal point
<k0> - <k9> keypad 0 to 9

사용 예제

  • 참고: map은 새로운 단축키를 설정하는 명령입니다.
설명
:nmap <F2> :w<CR> NORMAL모드에서 <F2>를 누르면 :w명령을 입력하고 <Enter>키를 입력한다.
:nmap <C-j> i<CR><ESC> NORMAL모드에서 <NL>, 즉 <C-j>를 입력하면 현재 커서 오른쪽의 모든 문자열을 다음 라인으로 내려준다.
:nmap <NL> i<CR><ESC> <C-j><NL>이 같으므로 위와 똑같다.
:imap email [email protected]<Esc> INSERT모드에서 email을 타이핑하면 [email protected]을 입력하고 <Esc>를 입력하여 NORMAL모드로 돌아간다.
:imap email [email protected]<C-[> 위와 똑같다.