·概念及其學(xué)習(xí)原因
? ? Vi是Unix世界里極為普遍的全屏幕文本編輯器,VIM是它的改進(jìn)版本Vi IMproved的簡稱,和Emacs并列成為類Unix系統(tǒng)用戶最喜歡的編輯器。幾乎可以說任何一臺(tái)Unix機(jī)器都會(huì)提供這套軟件。由于Vim具有代碼補(bǔ)完、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能,在程序員中被廣泛使用。
·最基本的操作流程
1.在命令行里運(yùn)行vim文件名.擴(kuò)展名,如果文件名不存在,則新建一個(gè)空文件。
2.vim的工作模式:
不同于一般的文本編輯器,VIM存在3種工作模式,分別是命令模式,插入模式和VISUAL模式。剛打開vim時(shí)處于命令模式,按一下鍵盤i則進(jìn)入插入模式。注意這時(shí)的窗口左下角原本顯示文件名的地方現(xiàn)在顯示“-- INSERT --”。在插入模式下我們可以像普通的編輯器那樣輸入文本,進(jìn)行編輯。當(dāng)我們想退回命令模式時(shí)按鍵。
3.獲取幫助信息
:help
:help subject
比如想看看x命令的幫助::help x
學(xué)習(xí)vim的主要原因有:
1)所有的Unix like系統(tǒng)都會(huì)內(nèi)置vi文本編輯器,其他的文本編輯器則不一定會(huì)存在。
2)很多軟件的編輯接口都會(huì)主動(dòng)調(diào)用vi。
3)vim具有程序編輯的能力,可以主動(dòng)以字體顏色辨別語法的正確性,方便程序設(shè)計(jì)。
4)程序簡單,編輯速度快。
·Vim的基本使用方法及其相關(guān)命令
vim編輯器的三種模式:一般模式、編輯模式和命令行模式。
在一般模式中可以進(jìn)行刪除、復(fù)制和粘貼的功能,但是無法編輯文件內(nèi)容。從一般模式切換到編輯模式可以按下i、I、o、O、a、A、r、R鍵。按下Esc鍵可以回到一般模式。在一般模式中輸入:、/、?三個(gè)中的任意一個(gè)可以將光標(biāo)移到最下面的一行。在這個(gè)模式中可以提供查找數(shù)據(jù)的操作,而讀取、保存、大量替換字符、離開vii、顯示行號(hào)等操作則是在此模式中完成的。需要注意的是,編輯模式與命令行模式之間是不能互相切換的。
移動(dòng)光標(biāo)的方法:
[Ctrl]+[f]:屏幕向下移動(dòng)一頁,相當(dāng)于[PageDown]按鍵。
[Ctrl]+[b]:屏幕向上移動(dòng)一頁,相當(dāng)于[PageUp]按鍵。
0或功能鍵[Home]:移動(dòng)到這一行的最前面字符處。
$或功能鍵[End]:移動(dòng)到這一行的最后面字符處。
G:移動(dòng)到這個(gè)文件的最后一行。
gg:移動(dòng)到這個(gè)文件的第一行,相當(dāng)于1G.
N[Enter]:N為數(shù)字,光標(biāo)向下移動(dòng)N行。
查找和替換:
/word:向下尋找一個(gè)名稱為word的字符串。
?word:向上尋找一個(gè)名稱為word的字符串。
:n1,n2s/word1/word2/g:在第n1行和n2行之間尋找word1這個(gè)字符串,并且將其替換為word2.
:1,$s/word1/word2/g:從第一行到最后一行尋找word1這個(gè)字符串,并且將其替換為word2.
:1,$s/word1/word2/gc:從第一行到最后一行尋找word1這個(gè)字符串,并且將其替換為word2.且在替換前顯示提示字符給用戶確認(rèn)是否需要替換。
刪除、復(fù)制和粘貼:
x,X:在一行字中,x為向后刪除一個(gè)字符(相當(dāng)于[Del]鍵),X為向前刪除一個(gè)字符(相當(dāng)于[Backspace])。
dd:刪除光標(biāo)所在的一整行。
ndd:刪除光標(biāo)所在的向下n行。
yy:復(fù)制光標(biāo)所在的一行。
nyy:復(fù)制光標(biāo)所在的向下n行。
p,P:p為將已復(fù)制的內(nèi)容在光標(biāo)的下一行粘貼,P則為粘貼在光標(biāo)的上一行。
u:復(fù)原前一個(gè)操作。
[Ctrl]+r:重做上一個(gè)操作。
.:小數(shù)點(diǎn),重復(fù)前一個(gè)操作。
一般模式切換到編輯模式:
i,I:進(jìn)入插入模式,i為從目前光標(biāo)所在處插入。I為在目前所在行的第一個(gè)非空格字符處開始插入。
a,A:進(jìn)入插入模式。a為從目前光標(biāo)所在處的下一個(gè)字符處開始插入。A為從所在行的最后一個(gè)字符處開始插入。
o,O:進(jìn)入插入模式。o為在下一行插入。O為在上一行插入。
r,R:進(jìn)入替換模式。r只替換光標(biāo)所在那個(gè)字符一次。R會(huì)一直替換光標(biāo)所在字符,直到按下Esc鍵。
一般模式切換到命令行:
:w:將編輯的數(shù)據(jù)寫入到硬盤中。
:q:離開vi.后面加!為強(qiáng)制離開。
:wq:保存后離開。
:wq!:強(qiáng)制保存后離開。
目前主要的編輯器都有恢復(fù)功能,vim也不例外。vim是通過“保存”文件來挽回?cái)?shù)據(jù)的。
每當(dāng)我們在用vim編輯時(shí),vim都會(huì)自動(dòng)在被編輯的文件的目錄下面再新建一個(gè)名為filename.swap的文件。這就是一個(gè)暫存文件,我們對(duì)文件filename所做的操作都會(huì)被記錄到這個(gè)文件當(dāng)中。如果系統(tǒng)意外崩潰,導(dǎo)致文件沒有正常保存,那么這個(gè)暫存文件就會(huì)發(fā)揮作用。
用vim編輯name.txt文件:vim name.txt
在vim的一般模式下按下ctrl+z組合鍵,vim就會(huì)被丟失到后臺(tái)執(zhí)行?;氐矫钐崾痉h(huán)境后,我們模擬將vim的工作不正常中斷。
·vim的功能(在命令行中輸入vimtutor或者gvimtutor可以閱讀,遇到問題時(shí)可以使用:help)
【1】塊選擇
這個(gè)功能可以讓復(fù)制一個(gè)矩形區(qū)域的內(nèi)容
v:字符選擇,會(huì)將光標(biāo)經(jīng)過的地方反白選擇;
V:行選擇;
Ctrl+v:塊選擇;
y:復(fù)制反白的地方;
d:刪除反白的地方。
【2】多文件編輯
兩個(gè)或多個(gè)文件之間復(fù)制粘貼內(nèi)容時(shí),這個(gè)功能會(huì)方便很多
使用命令vim name1 name2 name3...(各個(gè)文件名之間用空格隔開)可以同時(shí)打開多個(gè)文件。
:n:編輯下一個(gè)文件;
:N:編輯上一個(gè)文件;
:files:列出目前vim打開的所有文件。