Vim的映射(map)是Vim强大功能的一个体现,利用map映射可以打造更强大的编辑器,大大提高编辑效率。
你可以将常用的命令组合映射为简单的命令,这样Vim下简单的命令可以实现复杂的功能。
在设置按键映射之前有必要先了解一下Vim的几种模式。据说Vim有十多种模式,但只要了解最基本的3种,基本上就可以满足日常应用了。
运行Vim后进入的就是Normal模式,在这种模式下可以移动鼠标、寻找、替换、编辑指令,但不能输入文字——这与其它编辑器有很大的差别。
在Insert 模式下,可以像在其它编辑器中一样输入文字。此时左下角状态列会有“-INSERT-”(-插入-)字样。在Normal模式按下下面的键可以进入Insert 模式:i (在当前字符的前面插入);a (在当前字符的后面插入);o (在当前行的后面添加新的一行);O (在当前行的上面添加新的一行)。
在Visual 模式下可以把文字反白起来,此时左下角状态栏会有“-VISUAL-”或“-VISUAL LINE-”或“-VISUAL BLOCK-”字样。在Normal模式下按v或V(有什么差别呢?)可以进入Visual 模式。
不管是在Insert 模式或Visual 模式或其它的什么模式,按Ese键都可以返回Normal模式。
nmap:映射一个Normal模式下的键,只有在Normal模式这个命令才会生效。
例:nmap ,s :source $VIM/_vimrc<cr>
说明:绑定“,s”在Normal模式下映射为“:source $VIM/_vimrc<cr>”命令,即重新读取配置文件_vimrc 。
imap:映射一个Insert 模式下的键,只有在Insert 模式这个命令才会生效。
例:imap <F11> :r c:\boot.ini<cr>
说明:绑定F11在Insert 模式下的映射为“:r c:\boot.ini<cr>”命令,即读取c:\boot.ini文件到当前位置。
vmap:映射一个Visual模式下的键,只有在Visual模式这个命令才会生效。
例:vmap sb “zbi<b><c-r>z</b><ESC>
说明:选中文字后按sb,选中文字的前后将分别加上<b>和</b>。
再例:vmap g/ y/<c-r>”<cr>
说明:映射“g/”这个组合键匹配选中的字并给予高亮显示。
map:用map绑定的键对Normal, Insert, Visual和Command-line模式均有效。
例:map <F5> :ls<cr>:e #
说明:映射F5键,使得按下F5会显示当前可编辑文件的buffer,然后提示你输入buffer的行号。