특정 키가 눌릴 때, 미리 설정한 기능을 호출하도록 하는 것이다.
약어 매크로는 입력 모드와 명령행 모드에서만 사용 가능하지만, 키 매핑은 모든 모드에서 사용할 수 있다.
옵션처럼 단축키를 설정할 때 .vimrc에 추가해서 사용하면, vim을 실행할 때 자동으로 설정이 반영된다.
키 맵핑을 설정하는 명령어는 다음과 같다.
| 명령어 | 설명 |
|---|---|
nmap key command | normal mode에서 key를 누르면 command가 실행된다. |
imap key command | insert mode에서 key를 누르면 command가 실행된다. |
vmap key command | visual mode에서 key를 누르면 command가 실행된다. |
cmap key command | command line mode에서 key를 누르면 command가 실행된다. |
🔍ex)
nmap <F2> :up<CR>namp <F2>는 일반 모드에서 F2키를 눌렀을 때의 단축키를 설정한다는 뜻이다.:up<CR>는 F2를 눌렀을 때 실행되는 명령이다.키 맵핑 해제하는 방법은 각 명령의 map 대신 unmap을 입력하는 것이다.
| 명령어 |
|---|
| nunmap |
| iunmap |
| vunmap |
| cunmap |
특정 파일을 열거나 저장하는 이벤트가 발생할 때, 사용자가 지정한 명령을 자동으로 수행시키는 기능이다.
autocmd라는 명령으로 자동 명령을 .vimrc에 설정해 놓으면 된다.
autocmd는 약어로 au로 사용한다.
이 때 명령의 format은 다음과 같다.
autocmd {Event1},{Event2} {Filetype1},{FileType2} {동작1}|{동작2}{Event}와 {FileType}은 ,로 구분한다.| (수직바)로 구분한다.명령의 예시는 다음과 같다.
au BufRead,BufNewFile *.txt colo eveningcolo evening 명령을 자동으로 실행하라는 뜻이다.au명령의 두 번째 인수인 파일과 관련된 주요 이벤트는 다음과 같다.
| 이벤트 | 설명 |
|---|---|
| BufNewFile | 파일을 새로 생성했을 때 |
| BufRead | 파일을 읽었을 때 |
| BufWrite | 파일을 저장했을 때 |
| SwapExists | 스왑 파일이 이미 존재하는 경우 |
파일 형식을 구분할 수 있는 이벤트가 있다.
| 이벤트 | 설명 |
|---|---|
| FileType | 다음에 나오는 인자인 {FileType}을 확인하여 자동 명령을 실행하는 이벤트 |
au FileType cpp colo stateau BufRead,BufNewFile *.cpp,*.cc,*.cxx colo state처럼 하는 것보다 훨씬 효율적이다.