본문 바로가기
my_lesson/_Vi

Vim - vim Key mapping

by boolean 2016. 2. 20.
728x90

Vim - Key mapping


Key mapping은 vi에서 사용할 수 있는 단축키를 지정하는 것을 의미한다.
Default로 mapping 되어 있는 단축키가 꽤 있지만
자신이 자주 사용하는 것을 단축키로 지정하여 사용하면 작업 능률을 상당히 올릴 수 있다.

Key mapping은 
vi내에서 command line에서 지정해 줄 수도 있고(해당 문서에만 적용됨)
.vimrc 설정 파일에서 선언하여 사용할 수도 있다.(모든 문서에서 사용가능)

Key mapping은 간단히 사용자가 키보드로 입력하는 sequence를 키 하나로 지정한다고 생각하면 된다.

예를 들어 normal mode에서 지금 커서가 있는 단어에 중괄호를 하고 싶다 하면
다음과 같은 순서로 입력을 하면 될 것이다.

i (insert mode) -> { ('{'를 입력) -> <Esc> (normal mode) -> e (단어의 끝으로 이동) -> a (append mode) -> } ('}'를 입력) -> <Esc> (normal mode)


이 과정을 우리가 단축키 F5로 지정하고 싶다고 하면
아래와 같이 vi command line 혹은 .vimrc에 선언해 주면 된다.

map <F5> i{<Esc>ea}<Esc>


물론 꼭 normal mode에서만 작성이 가능한 것이 아니다

:map                      Normal, Visual, Operator-pending mode
:vmap                    Visual mode
:nmap                     Normal mode
:omap                    Operator-pending mode
:map!                    Insert, Command-line mode
:imap                     Insert mode
:cmap                    Command-line mode

위와 같이 mode별로 단축키를 설정하는 명령어를 다르게 사용하면 된다.
여기서 Operator-pending mode의 경우 예를 들어 설명하자면 
우리가 vi normal mode에서 d2w하게 되면 두개의 단어를 지우라는 명령어가 된다.
여기서 d의 경우 delete 명령어, 뒤의 2w가 두개의 단어를 뜻하는데
Operator pending mode는 일단 우리가 d를 누른 상태 (즉, 목적어를 지정해주지 않은 상태)를 의미한다.


Here a short overview of each mode available in vim:


NameDescriptionhelp page
normalFor navigation and manipulation of text. This is the mode that vim will usually start in, which you can usually get back to with ESC.:help Normal-mode
insertFor inserting new text. The main difference from vi is that many important "normal" commands are also available in insert mode - provided you have a keyboard with enough meta keys (such as Ctrl, Alt, Windows-key, etc.).:help Insert-mode
visualFor navigation and manipulation of text selections, this mode allows you to perform most normal commands, and a few extra commands, on selected text.:help Visual-mode
selectSimilar to visual but with a more MS-Window like behavior.:help Select-mode
command-lineFor entering editor commands - like the help commands in the 3rd column.:help Command-line-mode
Ex-modeSimilar to the command-line mode but optimized for batch processing.:help Ex-mode


또한, 우리가 알아두어야 할 것이 위에서와 같이 <와 >로 둘러 쌓인 특수키인데
많이 쓰이는 것만 알아보도록 하면 다음과 같다

<Esc>                  ESC 키
<CR>                   엔터키 (Carriaga retrun)
<C-A>                  Ctrl+A
<A-A>                  Art+A
<S-A>                 Shift+A
<F1>                   F1키
<Home>                Home 키
<End>                 End 키


댓글