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