1. 簡(jiǎn)介
Vim(Vi[Improved])編輯器是功能強(qiáng)大的跨平臺(tái)文本文件編輯工具捕仔,繼承自Unix系統(tǒng)的Vi編輯器宛徊,支持Linux/Mac OS X/Windows系統(tǒng),利用它可以建立逻澳、修改文本文件闸天。進(jìn)入Vim編輯程序,可以在終端輸入下面的命令:
$vim [filename]
其中filename
是要編輯器的文件的路徑名斜做。如果文件不存在苞氮,它將為你建立一個(gè)新文件。Vim編輯程序有三種操作模式瓤逼,分別稱為 編輯模式笼吟、插入模式 和 命令模式,當(dāng)運(yùn)行Vim時(shí)霸旗,首先進(jìn)入編輯模式贷帮。
2. 編輯模式
Vim編輯方式的主要用途是在被編輯的文件中移動(dòng)光標(biāo)的位置。一旦光標(biāo)移到到所要的位置诱告,就可以進(jìn)行剪切和粘貼正文塊撵枢,刪除正文和插入新的正文。當(dāng)完成所有的編輯工作后精居,需要保存編輯器結(jié)果锄禽,退出編輯程序回到終端,可以發(fā)出ZZ
命令靴姿,連續(xù)按兩次大寫(xiě)的Z
鍵沃但。
2.1 跳轉(zhuǎn)
如果鍵盤(pán)上有上、下佛吓、左宵晚、右箭頭的導(dǎo)航鍵,就由這些鍵來(lái)完成光標(biāo)的移動(dòng)维雇。另外淤刃,可以用下面的鍵完成同樣的 按字符移動(dòng) 功能:
k 上移;
j 下移谆沃;
h 左移钝凶;
l 右移。
上面這4個(gè)鍵將光標(biāo)位置每次移動(dòng)一行或一個(gè) 字符 。Vim還提供稍大范圍移動(dòng)光標(biāo)的命令:
ctrl+f 在文件中前移一頁(yè)(相當(dāng)于 page down)耕陷;
ctrl+b 在文件中后移一頁(yè)(相當(dāng)于 page up)掂名;
更大范圍的移動(dòng):
* 當(dāng)光標(biāo)停留在一個(gè)單詞上,* 鍵會(huì)在文件內(nèi)搜索該單詞哟沫,并跳轉(zhuǎn)到下一處饺蔑;
# 當(dāng)光標(biāo)停留在一個(gè)單詞上,# 在文件內(nèi)搜索該單詞嗜诀,并跳轉(zhuǎn)到上一處猾警;
(/) 移動(dòng)到 前/后 句 的開(kāi)始;
{/} 跳轉(zhuǎn)到 當(dāng)前/下一個(gè) 段落 的開(kāi)始隆敢。
g_ 到本行最后一個(gè)不是 blank 字符的位置发皿。
fa 到下一個(gè)為 a 的字符處,你也可以fs到下一個(gè)為s的字符拂蝎。
t, 到逗號(hào)前的第一個(gè)字符穴墅。逗號(hào)可以變成其它字符。
3fa 在當(dāng)前行查找第三個(gè)出現(xiàn)的 a温自。
F/T 和 f 和 t 一樣玄货,只不過(guò)是相反方向;
gg 將光標(biāo)定位到文件第一行起始位置;
G 將光標(biāo)定位到文件最后一行起始位置悼泌;
NG或Ngg 將光標(biāo)定位到第 N 行的起始位置松捉。
在屏幕中找到需要的 一頁(yè) 時(shí),可以用下面的命令快速移動(dòng)光標(biāo):
H 將光標(biāo)移到屏幕上的起始行(或最上行)馆里;
M 將光標(biāo)移到屏幕中間隘世;
L 將光標(biāo)移到屏幕最后一行。
同樣需要注意字母的大小寫(xiě)也拜。H
和 L
命令還可以加數(shù)字以舒。如 2H
表示將光標(biāo)移到屏幕的第2行,3L
表示將光標(biāo)移到屏幕的倒數(shù)第3行慢哈。
當(dāng)將光標(biāo)移到所要的行是,行內(nèi)移動(dòng) 光標(biāo)可以用下面的命令來(lái)實(shí)現(xiàn):
2.2 搜索匹配
和許多先進(jìn)的編輯器一樣永票,Vim 提供了強(qiáng)大的字符串搜索功能卵贱。要查找文件中指定字或短語(yǔ)出現(xiàn)的位置,可以用Vim直接進(jìn)行搜索侣集,而不必以手工方式進(jìn)行键俱。搜索方法是:鍵入字符 /
,后面跟以要搜索的字符串世分,然后按回車(chē)鍵编振。編輯程序執(zhí)行正向搜索(即朝文件末尾方向),并在找到指定字符串后臭埋,將光標(biāo)停到該字符串的開(kāi)頭踪央;鍵入 n
命令可以繼續(xù)執(zhí)行搜索臀玄,找出這一字符串下次出現(xiàn)的位置。用字符 ?
取代 /
畅蹂,可以實(shí)現(xiàn)反向搜索(朝文件開(kāi)頭方向)健无。例如:
/str1 正向搜索字符串 str1;
n 繼續(xù)搜索液斜,找出 str1 字符串下次出現(xiàn)的位置累贤;
N 繼續(xù)搜索,找出 str1 字符串上一次出現(xiàn)的位置少漆;
?str2 反向搜索字符串 str2 臼膏。
無(wú)論搜索方向如何,當(dāng)?shù)竭_(dá)文件末尾或開(kāi)頭時(shí)示损,搜索工作會(huì)循環(huán)到文件的另一端并繼續(xù)執(zhí)行渗磅。
2.3 替換和刪除
Vim常規(guī)的刪除命令是 d
、 x
(前者刪除 行
屎媳,后者刪除 字符
),結(jié)合Vim的其他特性可以實(shí)現(xiàn)基礎(chǔ)的刪除功能夺溢。將光標(biāo)定位于文件內(nèi)指定位置后,可以用其他字符來(lái)替換光標(biāo)所指向的字符烛谊,或從當(dāng)前光標(biāo)位置刪除一個(gè)或多個(gè)字符或一行风响、多行。例如:
rc 用 c 替換光標(biāo)所指向的當(dāng)前字符丹禀;
nrc 用 c 替換光標(biāo)所指向的前 n 個(gè)字符状勤;
5rA 用 A 替換光標(biāo)所指向的前 5 個(gè)字符;
x 刪除光標(biāo)所指向的當(dāng)前字符双泪;
nx 刪除光標(biāo)所指向的前 n 個(gè)字符持搜;
3x 刪除光標(biāo)所指向的前 3 個(gè)字符;
dw 刪除光標(biāo)右側(cè)的字焙矛;
ndw 刪除光標(biāo)右側(cè)的 n 個(gè)字葫盼;
3dw 刪除光標(biāo)右側(cè)的 3 個(gè)字;
db 刪除光標(biāo)左側(cè)的字村斟;
ndb 刪除光標(biāo)左側(cè)的 n 個(gè)字贫导;
5db 刪除光標(biāo)左側(cè)的 5 個(gè)字;
dd 刪除光標(biāo)所在行蟆盹,并去除空隙孩灯;
ndd 刪除(剪切) n 行內(nèi)容,并去除空隙逾滥;
3dd 刪除(剪切) 3 行內(nèi)容峰档,并去除空隙;
3. 插入模式
3.1 進(jìn)入插入模式
在編輯模式下正確定位光標(biāo)之后,可用以下命令切換到插入模式:
i 在光標(biāo)左側(cè)插入正文
a 在光標(biāo)右側(cè)插入正文
o 在光標(biāo)所在行的下一行增添新行
O 在光標(biāo)所在行的上一行增添新行
I 在光標(biāo)所在行的開(kāi)頭插入
A 在光標(biāo)所在行的末尾插入
3.2 退出插入模式
退出插入模式的方法是讥巡,按 ESC
鍵或組合鍵 Ctrl+[
掀亩,退出插入模式之后,將會(huì)進(jìn)入編輯模式 尚卫。
4. 命令模式
在Vim的命令模式下归榕,可以使用復(fù)雜的命令。在編輯模式下鍵入:
吱涉,光標(biāo)就跳到屏幕最后一行刹泄,并在那里顯示冒號(hào),此時(shí)已進(jìn)入命令模式怎爵。命令模式又稱 末行模式 特石,用戶輸入的內(nèi)容均顯示在屏幕的最后一行,按回車(chē)鍵鳖链,Vim 執(zhí)行命令姆蘸。