用户工具

站点工具


linux:vim:map

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

linux:vim:map [2011/09/21 03:24] (当前版本)
行 1: 行 1:
 +====== VIM键盘映射 (Map) ======
 +===== 设置键盘映射 =====
 +
 +使用:​map命令,可以将键盘上的某个按键与Vim的命令绑定起来。例如使用以下命令,可以通过F5键将单词用花括号括起来:
 +
 +<​code>​
 +:map <F5> i{e<​Esc>​a}<​Esc>​
 +</​code>​
 +
 +其中:i{将插入字符{,然后使用Esc退回到命令状态;接着用e移到单词结尾,a}增加字符},最后退至命令状态。在执行以上命令之后,光标定位在一个单词上(例如amount),按下F5键,这时字符就会变成{amount}的形式。
 +
 +===== 不同模式下的键盘映射 =====
 +
 +使用下表中不同形式的map命令,可以针对特定的模式设置键盘映射:
 +
 +<​html>​
 +<table summary="​Map in diffent mode" border="​1"​ rules="​all"​ cellspacing="​0"​ cellpadding="​2"​ style="​text-align:​center"><​tbody><​tr><​td>​Command<​br>​命令</​td><​td>​Normal<​br>&​nbsp;&​nbsp;​常规模式&​nbsp;&​nbsp;</​td><​td>​Visual<​br>​可视化模式</​td><​td>​Operator Pending<​br>​运算符模式</​td><​td>​Insert Only<​br>​插入模式</​td><​td>​Command Line<​br>​命令行模式</​td></​tr><​tr><​td><​code class="​inset">:​map</​code></​td><​td>​y</​td><​td>​y</​td><​td>​y</​td><​td></​td><​td></​td></​tr><​tr><​td><​code class="​inset">:​nmap</​code></​td><​td>​y</​td><​td></​td><​td></​td><​td></​td><​td></​td></​tr><​tr><​td><​code class="​inset">:​vmap</​code></​td><​td></​td><​td>​y</​td><​td></​td><​td></​td><​td></​td></​tr><​tr><​td><​code class="​inset">:​omap</​code></​td><​td></​td><​td></​td><​td>​y</​td><​td></​td><​td></​td></​tr><​tr><​td><​code class="​inset">:​map!</​code></​td><​td></​td><​td></​td><​td></​td><​td>​y</​td><​td>​y</​td></​tr><​tr><​td><​code class="​inset">:​imap</​code></​td><​td></​td><​td></​td><​td></​td><​td>​y</​td><​td></​td></​tr><​tr><​td><​code class="​inset">:​cmap</​code></​td><​td></​td><​td></​td><​td></​td><​td></​td><​td>​y</​td></​tr></​tbody></​table></​html>​
 +
 +===== 键盘映射实例 =====
 +
 +
 +使用以下命令,可以在Normal Mode和Visual/​Select Mode下,利用Tab键和Shift-Tab键来缩进文本:
 +
 +<​code>​
 +nmap <tab> V>
 +nmap <​s-tab>​ V<
 +vmap <tab> >gv
 +vmap <​s-tab>​ <gv
 +</​code>​
 +
 +使用以下命令,指定F10键来新建标签页:
 +<​code>​
 +:map <F10> <​Esc>:​tabnew<​CR>​
 +</​code>​
 +
 +其中:<​Esc>​代表Escape键;<​CR>​代表Enter键;而功能键则用<​F10>​表示。首先进入命令行模式,然后执行新建标签页的:​tabnew命令,最后返回常规模式。
 +
 +同理:对于组合键,可以用<​C-Esc>​代表Ctrl-Esc;使用<​S-F1>​表示Shift-F1。对于Mac用户,可以使用<​D>​代表Command键。
 +
 +注意:Alt键可以使用<​M-key>​或<​A-key>​来表示。
 +
 +关于键盘符号的详细说明,请使用:​h key-notation命令查看帮助信息。
 +
 +我们还可以针对函数设置键盘映射。 例如,将以下代码加入.vimrc文件,就可以利用快捷键,来打开或关闭针对搜索结果的高亮显示。
 +
 +===== 查看键盘映射 =====
 +
 +{{:​linux:​vim:​map-view.jpg|}}
 +
 +使用:​map命令,可以列出所有键盘映射。其中第一列标明了映射在哪种模式下工作:
 +
 +<​code>​
 +标记 模式
 +<​space>​ 常规模式,可视化模式,运算符模式
 +n 常规模式
 +v 可视化模式
 +o 运算符模式
 +! 插入模式,命令行模式
 +i 插入模式
 +c 命令模式
 +</​code>​
 +
 +使用:​map!命令,则只列出插入和命令行模式的映射。而:​imap,:​vmap,:​omap,:​nmap命令则只是列出相应模式下的映射。
 +
 +===== 取消键盘映射 =====
 +
 +
 +如果想要取消一个映射,可以使用以下命令:
 +
 +<​code>​
 +:unmap <F10>
 +</​code>​
 +
 +注意:必须为:​unmap命令指定一个参数。如果未指定任何参数,那么系统将会报错,而不会取消所有的键盘映射。
 +
 +针对不同模式下的键盘映射,需要使用与其相对应的unmap命令。例如:使用:​iunmap命令,取消插入模式下的键盘映射;而取消常规模式下的键盘映射,则需要使用:​nunmap命令。
 +
 +如果想要取消所有映射,可以使用:​mapclear命令。请注意,这个命令将会移除所有用户定义和系统默认的键盘映射。
 +
 +===== 参考 =====
 +  * http://​yyq123.blogspot.com/​2010/​12/​vim-map.html
 +  * [[vim:​map-basic]]
 +
  
linux/vim/map.txt · 最后更改: 2011/09/21 03:24 (外部编辑)