vim--vim的几种模式和map映射之间的联系
vim的几种模式
1、Normal Mode 普通模式
功能:在这种模式下可以移动光标等。
进入:默认进入vim之后,处于这种模式。在其他模式下狂按ESC后进入此模式。
2、Visual Mode 可视模式
功能:在这种模式下可以选定一些字符、行、多列。
进入:在普通模式下,按v进入。
3、Insert Mode 插入模式
功能:在这种模式下可以编辑输入等。
进入:普通模式下,可以按i、a、o等进入。
4、Command-Line 命令行模式
功能:可以输入各种命令。
进入:普通模式下按冒号(:)进入。
5、Ex Mode Ex模式
功能:多行的Command-Line模式。
进入:普通模式下按Q进入Ex模式。
6、Select Mode 选择模式
功能:在gvim下常用的模式,用鼠标拖选区域的时候,就进入了选择模式。和可视模式不同的是,在这个模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。
进入:普通模式下,可以按gh进入。
map映射
在vim配置文件中经常会看到map、nmap、imap、vmap、vnoremap、nunmap、nmapclear等,都是什么意思呢?
map前的n、v、nore、un等表示下列含义:
nore—— 表示非递归。
n ——表示在普通模式下生效。
v ——表示在可视模式下生效。
i ——表示在插入模式下生效。
c——表示在命令行模式下生效。
un——后面跟按键组合,表示删除这个映射。
clear——表示清除相关模式下的所有映射。
映 射 与 运 行 模 式
有五种映射存在
- 对于普通模式: 当输入命令时.
- 对于可视模式: 当输入命令并且 Visual 区域已被设置为高亮时.
- 对于 Operator-pending mode: 当一个操作符正在进行中 ("d", "y", "c",等等之后)
例如: ":omap { w" 会使 "y{" 和 "yw" 一样, "d{" 和 "dw"一样.
- 对于插入模式: 也被用于替换模式.
- 对于命令行模式: 当输入一个 ":" 或 "/" 命令时.
没有独立针对选择模式的映射. 和可视模式在 |Select-mode-mapping|
中的一样.
特殊情况:当在普通模式里为一个命令输入一个数时,对 0 的映射就会禁用。这样
在输入一个带有0的数字时不会受到对 0 键映射的干扰。
*map-overview* *map-modes*
每个映射命令工作的模式概况: 命令: 模式:
普通 可视 Operator-pending
:map :noremap :unmap :mapclear yes yes yes
:nmap :nnoremap :nunmap :nmapclear yes - -
:vmap :vnoremap :vunmap :vmapclear - yes -
:omap :onoremap :ounmap :omapclear - - yes 插入 命令行 Lang-Arg
:map! :noremap! :unmap! :mapclear! yes yes -
:imap :inoremap :iunmap :imapclear yes - -
:cmap :cnoremap :cunmap :cmapclear - yes -
:lmap :lnoremap :lunmap :lmapclear yes* yes* yes*
参考:http://man.chinaunix.net/newsoft/vi/doc/map.html#abbreviations