原文鏈接:https://www.3mooc.com/front/articleinfo/154
vi是“Visual interface”的簡(jiǎn)稱,它在Linux上的地位就仿佛Edit程序在DOS上一樣。它可以執(zhí)行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據(jù)自己的需要對(duì)其進(jìn)行定制。Vi不是一個(gè)排版程序,它不象Word或WPS那樣可以對(duì)字體、格式、段落等其他屬性進(jìn)行編排,它只是一個(gè)文本編輯程序。 vi沒有菜單,只有命令,且命令繁多。
Vi有三種基本工作模式:
+??命令模式
+??文本輸入模式
+??末行模式。
命令行模式
任何時(shí)候,不管用戶處于何種模式,只要按一下ESC鍵,即可使Vi進(jìn)入命令模式;我們?cè)趕hell環(huán)境(提示符為$)下輸入啟動(dòng)Vi命令,進(jìn)入編輯器時(shí),也是處于該模式下。在該模式下,用戶可以輸入各種合法的Vi命令,用于管理自己的文檔。此時(shí)從鍵盤上輸入的任何字符都被當(dāng)做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應(yīng)的動(dòng)作。但需注意的是,所輸入的命令并不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會(huì)響鈴報(bào)警。
文本輸入模式
在命令模式下輸入插入命令i、附加命令a 、打開命令o、修改命令c、取代命令r或替換命令s都可以進(jìn)入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當(dāng)做文件內(nèi)容保存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按鍵ESC即可。
末行模式
末行模式也稱ex轉(zhuǎn)義模式。在命令模式下,用戶按“:”鍵即可進(jìn)入末行模式下,此時(shí)Vi會(huì)在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個(gè)“:”作為末行模式的提示符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令執(zhí)行完后,Vi自動(dòng)回到命令模式。例如:
:sp?newfile
則分出一個(gè)窗口編輯newfile文件。如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入命令a或者i;如果需要從文本模式返回,則按Esc鍵即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
vim基礎(chǔ)操作
vim是從 vi 發(fā)展出來的一個(gè)文本編輯器 。代碼補(bǔ)完、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富
進(jìn)入插入模式:
i:?插入光標(biāo)前一個(gè)字符?
I:?插入行首?
a:?插入光標(biāo)后一個(gè)字符?
A:?插入行未?
o:?向下新開一行,插入行首?
O:?向上新開一行,插入行首
進(jìn)入命令模式:
ESC:從插入模式或末行模式進(jìn)入命令模式
移動(dòng)光標(biāo):
h:?左移?
j:?下移?
k:?上移?
l:?右移
M:?光標(biāo)移動(dòng)到中間行?
L:?光標(biāo)移動(dòng)到屏幕最后一行行首?
G:?移動(dòng)到指定行,行號(hào)?-G
w:?向后一次移動(dòng)一個(gè)字?
b:?向前一次移動(dòng)一個(gè)字
{:?按段移動(dòng),上移?
}:?按段移動(dòng),下移
Ctr-d:?向下翻半屏?
Ctr-u:?向上翻半屏
Ctr-f:?向下翻一屏?
Ctr-b:?向上翻一屏
gg:?光標(biāo)移動(dòng)文件開頭?
G:?光標(biāo)移動(dòng)到文件末尾
刪除命令:
x:?刪除光標(biāo)后一個(gè)字符,相當(dāng)于?Del?
X:?刪除光標(biāo)前一個(gè)字符,相當(dāng)于?Backspace
dd:?刪除光標(biāo)所在行,n?dd?刪除指定的行數(shù)?D:?刪除光標(biāo)后本行所有內(nèi)容,包含光標(biāo)所在字符?
d0:?刪除光標(biāo)前本行所有內(nèi)容,不包含光標(biāo)所在字符
dw:?刪除光標(biāo)開始位置的字,包含光標(biāo)所在字符
撤銷命令:
u:?一步一步撤銷?
Ctr-r:?反撤銷
重復(fù)命令:
.:?重復(fù)上一次操作的命令
文本行移動(dòng):
>>:?文本行右移?
<<:?文本行左移
復(fù)制粘貼:
yy:?復(fù)制當(dāng)前行,n?yy?復(fù)制?n?行?
p:?在光標(biāo)所在位置向下新開辟一行,粘貼
可視模式:
v:?按字符移動(dòng),選中文本?
V:?按行移動(dòng),選中文本可視模式可以配合?d,?y,?>>,?<<?實(shí)現(xiàn)對(duì)文本塊的刪除,復(fù)制,左右移動(dòng)
替換操作:
r:?替換當(dāng)前字符?
R:?替換當(dāng)前行光標(biāo)后的字符
查找命令:
/:?str查找
n:?下一個(gè)
N:上一個(gè)
替換命令:
把a(bǔ)bc全部替換成123
末行模式下,將當(dāng)前文件中的所有abc替換成123
:%s/abc/123/g
末行模式下,將第一行至第10行之間的abc替換成123
:1,?10s/abc/123/g
vim里執(zhí)行 shell 下命令:
末行模式里輸入!,后面跟命令