基本映射
地图概述
可以使用 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!
进一步阅读这里