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