vim                
            Vim의 주요 매핑
        
        
            
    수색…
소개
Vim 키 매핑을 업데이트하면 더 기억에 남거나 접근하기 쉬운 문자에 키 명령을 다시 할당하고 키가없는 함수에 대한 키 명령을 만드는 두 가지 종류의 문제를 해결할 수 있습니다. 여기에서 핵심 명령과 그 적용 문맥 (즉, vim 모드)을 매핑하는 다양한 방법에 대해 배웁니다.
기본 매핑
지도 개요
 키 시퀀스는 map 변형 중 하나를 사용하여 다른 키 시퀀스로 다시 매핑 될 수 있습니다. 
 예를 들어, 빠른 map 에서 j k 를 누르면 다음의 일반적인 map 이 삽입 모드 를 종료합니다. 
:inoremap jk <Esc>
지도 연산자
 서로 다른 모드에 대한 :map 의 여러 변형이 있습니다. 
| 명령들 | 모드 | 
|---|---|
| :map,:noremap,:map:unmap | 보통, 시각 및 운영자 대기 모드 | 
| :map!,:noremap!,:unmap! | 삽입 및 명령 줄 모드 | 
| :nmap,:nnoremap,:nunmap | 일반 모드 | 
| :imap,:inoremap,:iunmap | 삽입 및 바꾸기 모드 | 
| :vmap,:vnoremap,:vunmap | 시각 및 선택 모드 | 
| :xmap,:xnoremap,:xunmap | 비주얼 모드 | 
| :smap,:snoremap,:sunmap | 모드 선택 | 
| :cmap,:cnoremap,:cunmap | 명령 줄 모드 | 
| :omap,:onoremap,:ounmap | 운영자 보류 모드 | 
 보통 :noremap 변형을 사용해야합니다 . 매핑을 재 매핑 및 재귀에 대한 면역으로 만듭니다. 
map 명령
-  :map(또는 위의 변형 중 하나)을 사용하여 모든 매핑을 표시 할 수 있습니다.
-  특정 키 시퀀스에 대한 현재 매핑을 표시하려면 다음을 사용하십시오 :map <key>여기서<key>는 키 시퀀스입니다
-  Esc 와 같은 특수 키 는 <Esc>와 같은 특수<>표기법을 사용하여 매핑됩니다. 전체 키 코드 목록은 http://vimdoc.sourceforge.net/htmldoc/intro.html#keycodes를 참조하십시오.
-  :nmapclear- 모든 일반 모드 맵 삭제
-  :nunmap- 일반 모드 맵 매핑 해제
-  timeout및ttimeout변수를 변경하여 시퀀스의 키 사이의 최대 시간을 구성 할 수 있습니다
예제들
-  imap jk <Esc>: 삽입 모드에서jk를 입력하면 정상 모드로 돌아갑니다.
-  nnoremap tt :tabnew<CR>: 일반 모드에서tt를 입력하면 새 탭 페이지가 열립니다.
-  nnoremap <Cj> <Cw>j: 일반 모드에서<Cj>를 입력하면 아래와 왼쪽 창으로 이동할 수 있습니다
-  vmap <Cc> \cc: 시각적 모드에서<Cc>vmap <Cc> \cc입력하면\cc(NERDCommenter 명령으로 행을 주석 처리합니다). 플러그인 매핑을 사용하므로:vnoremap사용할 수 없습니다:vnoremaphere!
학습과 읽기 여기
맵 리더 키 조합
리더 키는 최종 사용자가 재정의 할 수있는 키 바인딩을 사용하여 매핑을 만드는 방법으로 사용할 수 있습니다.
 리더는 기본적으로 \ 키입니다. 이를 덮어 :let g:mapleader='somekey(s)' 려면 최종 사용자가 매핑을 정의하기 전에 :let g:mapleader='somekey(s)' 해야합니다. 
 일반적인 시나리오에서 mapleader는 .vimrc 설정되고 플러그인은 매핑의 키 바인딩 부분에 <Leader> 를 사용하여 사용자 정의 할 수 있습니다. 
플러그인에서 다음과 함께 매핑을 정의합니다.
:nnoremap <Leader>a somecomplexaction
이것은 \ + 키 조합에 somecomplexaction 동작을지도한다.
리더가없는 다음은 동작은 변경되지 않습니다.
 또한 <Plug>Mappings 을 사용하여 플러그인 키 바인딩을 사용자 정의 할 수있는 공간을 확보 할 수 있습니다. 
기본 매핑 (편리한 바로 가기)의 그림.
대부분의 텍스트 편집기에서 현재 문서를 저장하기위한 표준 바로 가기는 Ctrl + S (또는 MacOS에서는 Cmd + S )입니다.
 Vim에는 기본적으로이 기능이 없지만 매핑을 통해 작업을 쉽게 할 수 있습니다. .vimrc 파일에 다음 행을 추가하면 작업이 수행됩니다. 
nnoremap <c-s> :w<CR>
inoremap <c-s> <c-o>:w<CR>
 nnoremap 명령은 Ctrl + S 를 :w (현재 내용 쓰기) 명령에 매핑하지만 inoremap 명령은 Ctrl + S 를 :w 명령에 매핑하고 삽입 모드로 돌아갑니다 ( <co> 명령 <co> 은 한 명령에 대해 일반 모드로 들어가고 <esc>:w<cr>a 와 같은 다른 솔루션이 보장 할 수없는 커서 위치를 변경하지 않고 나중에 삽입 모드로 돌아갑니다. 
비슷하게,
" This is commented, as Ctrl+Z is used in terminal emulators to suspend the ongoing program/process.
" nnoremap <c-z> :u<CR>
" Thus, Ctrl+Z can be used in Insert mode
inoremap <c-z> <c-o>:u<CR>
" Enable Ctrl+C for copying selected text in Visual mode
vnoremap <c-c> <c-o>:y<CR>
추신 : 그러나 그것은주의해야합니다 Ctrl + S 는 ssh (또는 PuTTY)를 사용하는 동안 예상대로 작동하지 않을 수 있습니다. 이 문제에 대한 해결책은이 문서의 범위에 포함되지 않지만 여기 에서 찾을 수 있습니다.