这里会显示出您选择的修订版和当前版本之间的差别。
— |
vim:map-basic [2011/09/14 03:58] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== Vim按键映射 ====== | ||
+ | |||
+ | Vim的映射(map)是Vim强大功能的一个体现,利用map映射可以打造更强大的编辑器,大大提高编辑效率。 | ||
+ | |||
+ | 你可以将常用的命令组合映射为简单的命令,这样Vim下简单的命令可以实现复杂的功能。 | ||
+ | |||
+ | ===== Vim的模式 ===== | ||
+ | |||
+ | |||
+ | 在设置按键映射之前有必要先了解一下Vim的几种模式。据说Vim有十多种模式,但只要了解最基本的3种,基本上就可以满足日常应用了。 | ||
+ | |||
+ | ==== 1. Normal mode (常态模式) ==== | ||
+ | |||
+ | |||
+ | 运行Vim后进入的就是Normal模式,在这种模式下可以移动鼠标、寻找、替换、编辑指令,但不能输入文字——这与其它编辑器有很大的差别。 | ||
+ | |||
+ | ==== 2. Insert mode (插入模式) ==== | ||
+ | |||
+ | |||
+ | 在Insert 模式下,可以像在其它编辑器中一样输入文字。此时左下角状态列会有“-INSERT-”(-插入-)字样。在Normal模式按下下面的键可以进入Insert 模式:i (在当前字符的前面插入);a (在当前字符的后面插入);o (在当前行的后面添加新的一行);O (在当前行的上面添加新的一行)。 | ||
+ | |||
+ | ==== 3. Visual mode (反白模式) ==== | ||
+ | |||
+ | |||
+ | 在Visual 模式下可以把文字反白起来,此时左下角状态栏会有“-VISUAL-”或“-VISUAL LINE-”或“-VISUAL BLOCK-”字样。在Normal模式下按v或V(有什么差别呢?)可以进入Visual 模式。 | ||
+ | |||
+ | 不管是在Insert 模式或Visual 模式或其它的什么模式,按Ese键都可以返回Normal模式。 | ||
+ | |||
+ | ===== 按键映射 ===== | ||
+ | |||
+ | ==== nmap ==== | ||
+ | |||
+ | nmap:映射一个Normal模式下的键,只有在Normal模式这个命令才会生效。 | ||
+ | |||
+ | 例:nmap ,s :source $VIM/_vimrc<cr> | ||
+ | |||
+ | 说明:绑定“,s”在Normal模式下映射为“:source $VIM/_vimrc<cr>”命令,即重新读取配置文件_vimrc 。 | ||
+ | |||
+ | ==== imap ==== | ||
+ | |||
+ | |||
+ | imap:映射一个Insert 模式下的键,只有在Insert 模式这个命令才会生效。 | ||
+ | |||
+ | 例:imap <F11> :r c:\boot.ini<cr> | ||
+ | |||
+ | 说明:绑定F11在Insert 模式下的映射为“:r c:\boot.ini<cr>”命令,即读取c:\boot.ini文件到当前位置。 | ||
+ | |||
+ | ==== vmap ==== | ||
+ | |||
+ | |||
+ | 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的行号。 | ||
+ | |||
+ | ===== 参考 ===== | ||
+ | * http://xxxcjr.blogspot.com/2010/01/vim.html | ||
+ | * http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-_Tutorial_%28Part_1%29 | ||