基本映射
地图概述
可以使用 map 变体之一将键序列重新映射到另一个键序列。
例如,当你按快速顺序时,以下典型的 map 将退出插入模式 j k :
:inoremap jk <Esc>
地图运算符
对于不同的模式,:map 有多种变体。
| 命令 | 模式 | 
|---|---|
| :map,:noremap,: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 <C-j> <C-w>j:在正常模式下输入- <C-j>会让你跳到下面和左边的窗口
- vmap <C-c> \cc:在视觉模式下输入- <C-c>将执行- \cc(NERDCommenter 命令来评论该行)。由于这依赖于插件映射,你不能在这里使用- :vnoremap!
进一步阅读这里