使用Vi/Vim編輯器:基礎(chǔ)篇
VI 編輯器是一個(gè)基于命令行的、功能強(qiáng)大的文本編輯器,最早為 Unix 系統(tǒng)開發(fā),后來(lái)也被移植到許多的 Unix 和 Linux 發(fā)行版上。
在 Linux 上還存在著另一個(gè) VI 編輯器的高階版本 —— VIM(也被稱作 VI IMproved)。VIM 只是在 VI 已經(jīng)很強(qiáng)的功能上添加了更多的功能,這些功能有:
支持更多 Linux 發(fā)行版,
支持多種編程語(yǔ)言,包括 python、c++、perl 等語(yǔ)言的代碼塊折疊,語(yǔ)法高亮,
支持通過(guò)多種網(wǎng)絡(luò)協(xié)議,包括 http、ssh 等編輯文件,
支持編輯壓縮歸檔中的文件,
支持分屏同時(shí)編輯多個(gè)文件。
接下來(lái)我們會(huì)討論 VI/VIM 的命令以及選項(xiàng)。本文出于教學(xué)的目的,我們使用 VI 來(lái)舉例,但所有的命令都可以被用于 VIM。首先我們先介紹 VI 編輯器的兩種模式。
命令模式
命令模式下,我們可以執(zhí)行保存文件、在 VI 內(nèi)運(yùn)行命令、復(fù)制/剪切/粘貼操作,以及查找/替換等任務(wù)。當(dāng)我們處于插入模式時(shí),我們可以按下 Escape(Esc)鍵返回命令模式
插入模式
在插入模式下,我們可以鍵入文件內(nèi)容。在命令模式下按下 i 進(jìn)入插入模式。
創(chuàng)建文件
我們可以通過(guò)下述命令建立一個(gè)文件(LCTT 譯注:如果該文件存在,則編輯已有文件):
$ vi filename
一旦該文件被創(chuàng)建或者打開,我們首先進(jìn)入命令模式,我們需要進(jìn)入輸入模式以在文件中輸入內(nèi)容。我們通過(guò)前文已經(jīng)大致上了解這兩種模式。
退出 Vi
如果是想從插入模式中退出,我們首先需要按下 Esc 鍵進(jìn)入命令模式。接下來(lái)我們可以根據(jù)不同的需要分別使用兩種命令退出 Vi。
不保存退出 - 在命令模式中輸入 :q!
保存并退出 - 在命令模式中輸入 :wq
移動(dòng)光標(biāo)
下面我們來(lái)討論下那些在命令模式中移動(dòng)光標(biāo)的命令和選項(xiàng):
k 將光標(biāo)上移一行
j 將光標(biāo)下移一行
h 將光標(biāo)左移一個(gè)字母
l 將光標(biāo)右移一個(gè)字母
注意:如果你想通過(guò)一個(gè)命令上移或下移多行,或者左移、右移多個(gè)字母,你可以使用 4k 或者 5l,這兩條命令會(huì)分別上移 4 行或者右移 5 個(gè)字母。
0 將光標(biāo)移動(dòng)到該行行首
$ 將光標(biāo)移動(dòng)到該行行尾
nG 將光標(biāo)移動(dòng)到第 n 行
G 將光標(biāo)移動(dòng)到文件的最后一行
{ 將光標(biāo)移動(dòng)到上一段
} 將光標(biāo)移動(dòng)到下一段
除此之外還有一些命令可以用于控制光標(biāo)的移動(dòng),但上述列出的這些命令應(yīng)該就能應(yīng)付日常工作所需。
編輯文本
這部分會(huì)列出一些用于命令模式的命令,可以進(jìn)入插入模式來(lái)編輯當(dāng)前文件
i 在當(dāng)前光標(biāo)位置之前插入內(nèi)容
I 在光標(biāo)所在行的行首插入內(nèi)容
a 在當(dāng)前光標(biāo)位置之后插入內(nèi)容
A 在光標(biāo)所在行的行尾插入內(nèi)容
o 在當(dāng)前光標(biāo)所在行之后添加一行
O 在當(dāng)前光標(biāo)所在行之前添加一行
刪除文本
以下的這些命令都只能在命令模式下使用,所以首先需要按下 Esc 進(jìn)入命令模式,如果你正處于插入模式:
dd 刪除光標(biāo)所在的整行內(nèi)容,可以在 dd 前增加數(shù)字,比如 2dd 可以刪除從光標(biāo)所在行開始的兩行
d$ 刪除從光標(biāo)所在位置直到行尾
d^ 刪除從光標(biāo)所在位置直到行首
dw 刪除從光標(biāo)所在位置直到下一個(gè)詞開始的所有內(nèi)容
復(fù)制與黏貼
yy 復(fù)制當(dāng)前行,在 yy 前添加數(shù)字可以復(fù)制多行
p 在光標(biāo)之后粘貼復(fù)制行
P 在光標(biāo)之前粘貼復(fù)制行
上述就是可以在 VI/VIM 編輯器上使用的一些基本命令。在未來(lái)的教程中還會(huì)繼續(xù)教授一些更高級(jí)的命令。如果有任何疑問(wèn)和建議,請(qǐng)?jiān)谙路皆u(píng)論區(qū)留言。

責(zé)任編輯:任我行
- 相關(guān)閱讀
- 業(yè)務(wù)信息化
- 戰(zhàn)略規(guī)劃
- IT運(yùn)維與治理
-
關(guān)于區(qū)塊鏈的6個(gè)其它應(yīng)用
2018-02-09區(qū)塊鏈 -
MySQL數(shù)據(jù)庫(kù)鎖定機(jī)制?這篇文章告訴你
-
如何在數(shù)據(jù)庫(kù)中查找和消除重復(fù)的數(shù)據(jù)?
-
如何在數(shù)據(jù)庫(kù)中查找和消除重復(fù)的數(shù)據(jù)?
-
智能辦公平臺(tái) 企業(yè)微信與釘釘?shù)膽?zhàn)爭(zhēng)才剛開始
-
大數(shù)據(jù)支撐:養(yǎng)老走進(jìn)“智能+”時(shí)代