Vim 的模式
Vim 之所以強大和它的模式是分不開的。這也是它的獨特之處。
Vim 一共有四種常用模式:
- 普通模式
- 插入模式
- 命令行模式
- 可視化模式
下面我們一一來看下這四個常用模式:
1. 普通模式
和其他我們常用的文本編輯器(比如 word 等)不同,默認情況下 Vim 打開文件后處于普通模式。這個模式并不能直接輸入文本。在普通模式下主要的功能是,移動,復制,刪除等對現有內容的操作。比如:
1.1 普通模式下移動光標
鍵名 | 作用 |
---|---|
h | 光標左移 |
j | 光標下移 |
k | 光標上移 |
l | 光標右移 |
除了單獨的移動光標之外,我們還可以利用 Vim 的組合思想 —— 數字前綴組合來移動多行,具體細節會在相應章節細說。
組合鍵 | 作用 |
---|---|
2+j | 向下移動兩行 |
5+h | 向左移動五個字符= |
除了上面的方向法,還有針對更加豐富粒度的詞組法:
鍵名 | 作用 |
---|---|
w | 移動到下一個單詞詞首 |
b | 移動到上一個單詞詞首 |
e | 移動到當前單詞詞尾 |
1.2 普通模式下進行復制 / 刪除
普通模式是 Vim 中最常用的模式,這也是區別于其他編輯器的地方。這個模式下可以按照上面的簡單操作,做出豐富的操作,高效按需移動,替換,刪除等常
見操作。這些都是可以通過快捷鍵的方式,再加上組合的思想便可以達到所向披靡。
Tips: 在其他模式下可以點擊 Esc 鍵回到普通模式。
2. 插入模式
插入模式是最容易理解的模式,就是和我們平時使用的編輯器一樣就是為了插入字符的。進入這個模式也很簡單,主要有三種方式:
2.1 i
鍵進入
i
表示 insert,即插入的意思,言簡意賅。打開 Vim 編輯器并點擊 i 鍵,這個時候編輯器左下角會出現 – INSERT – 字樣,就這樣表示進入插入模式了。
2.2 a
鍵進入
a
表示 append 意思,打開編輯器后點擊 a 鍵進入此模式。和 insert 不同的是,這個時候光標會移動到下一個字符,然后再進入插入模式。
2.3 o
鍵進入
o
這個方式會在當前行下面新插入一行,并進入插入模式。
下面我們集中演示下上面的三種插入操作
2.4 大寫字母方式進入插入模式
這些命令還可以以大寫字母方式進入插入模式,我們來看一下會有什么不一樣的效果。
- I 鍵:光標所在行首進行插入
- A 鍵:光標所在行尾進行插入
- O 鍵:光標所在行前新插入一空行進行插入
Tips: 這個模式很簡單,沒有太多的花樣。而且本身 Vim 也不是為了插入模式而設計的,大家可以了解下即可。
3. 可視化模式
可視化模式主要用于對文本進行選擇,類似于平時使用鼠標選中操作文本。我們可以選中相應文本,然后針對選中的文本指定操作:復制,替換等。
可視化模式主要有三種方式:
- v:字符級別可視化
- V: 行級別可視化
- Ctrl-v: 塊級別可視化
3.1 字符級別可視化
選中文本:
-
按下 v 進入可視化模式。
-
移動光標到指定的首尾文本。這個時候選中部分就會被 Vim 高亮提示。
3.2 行級別可視化
按下 V 進入可視化模式。
3.3 塊級別可視化
按下 Ctrl-v 進入可視化模式。
4. 命令行模式
顧名思義,命令行模式下的操作當然就是以命令為主,Vim 為我們提供了大量的豐富的命令,你可以把命令行模式當做是普通模式的加強版,它可以用來做到許多普通模式做不到的事情。
在普通模式下按下 :
,這時你會看到窗口的左下角出現了一個 :
,代表你已經進入命令行模式可以進行命令的輸入,輸入的命令會出現在 :
的后面。下面我們演示下替換的命令操作:
注解
分解 | 作用 | 備注 |
---|---|---|
: | 進入命令行模式 | |
% | 意味所有行 | 也可以是指定行或者指定范圍行 |
s | 替換意思 | substitute |
/fmt | 匹配的字符 | 這可以是個正則表達式 |
/mmm/ | 需要替換的結果 | |
g | 意思全局 | 和上面%有所區別,一個是匹配全局一個是替換全局 |
Tips: Vim 有很多豐富的命令,這里只是拋磚引玉僅供大家對命令模式有一個初步概念。后面再實際增刪改查等操作中會加入更多的命令操作。
5. 小結
這四種模式奠定了 Vim 的基本框架,每種模式都為 Vim 提供了豐富的特性。尤其是普通模式和命令行模式是重中之重。在這些模式背后有非常有意思和高效的技巧,后面我們會慢慢挖掘。