基本映射

地图概述

可以使用 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 - 取消映射普通模式映射
  • 你可以通过更改 timeoutttimeout 变量来配置序列键之间的最长时间

例子

  • 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

进一步阅读这里