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