




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Vi與vim的區(qū)別它們都是多模式編輯器,不同的是vim是vi的升級(jí)版本,它不僅兼容vi的所有指令,而且還有一些新的特性在里面。
vim的這些優(yōu)勢(shì)主要體現(xiàn)在以下幾個(gè)方面:
1、多級(jí)撤消
我們知道在vi里,按u只能撤消上次命令,而在vim里可以無(wú)限制的撤消。
2、易用性
vi只能運(yùn)行于unix中,而vim不僅可以運(yùn)行于unix,windows,mac等多操作平臺(tái)。
3、語(yǔ)法加亮
vim可以用不同的顏色來(lái)加亮你的代碼。
4、可視化操作
就是說(shuō)vim不僅可以在終端運(yùn)行,也可以運(yùn)行于xwindow、macos、windows。
5、對(duì)vi的完全兼容
某些情況下,你可以把vim當(dāng)成vi來(lái)使用。vi與vim一樣都是編輯器,不同的是vim更高級(jí)一些,可以理解是vi的高級(jí)版本。vi就像Windows中的計(jì)事本,而vim則可以算的上是office中的word。vi主要用來(lái)編輯一些文件,vim是程序員的好工具。好的。。。。下面在介紹一下vi的使用。。。。。。
1.使用vi進(jìn)入一般模式
[root@linux~]#vitest.txt
直接輸入“vi文件名”即可進(jìn)入vi。如圖10-2所示,左下角會(huì)顯示這個(gè)文件的當(dāng)前狀態(tài)。如果是新建文件,會(huì)顯示[NewFile],如果是已存在的文件,則會(huì)顯示當(dāng)前文件名、行數(shù)與字符數(shù),例如:“"/etc/man.config"145L,4614C”。
圖10-2利用vi打開(kāi)一個(gè)文件
2.按下i進(jìn)入編輯模式,開(kāi)始編輯文字
在一般模式中,只要按下I、o、a等字符,就可以進(jìn)入編輯模式了。在編輯模式中,可以發(fā)現(xiàn)在左下角會(huì)出現(xiàn)--INSERT--,意味著可以輸入任意字符,如圖10-3所示。這個(gè)時(shí)候,鍵盤(pán)上除了[Esc]這個(gè)按鍵之外,其他按鍵都可以視作為一般的輸入按鈕,可以進(jìn)行任何編輯(在vi里,[Tab]鍵所得到的結(jié)果與空格符所得到的不一樣,特別強(qiáng)調(diào)一下)。
圖10-3進(jìn)入vi的編輯模式
3.按下[Esc]鍵回到一般模式
按下[Esc]鍵,馬上就會(huì)發(fā)現(xiàn)畫(huà)面左下角的--INSERT--不見(jiàn)了。
4.在一般模式中按下:wq存儲(chǔ)后離開(kāi)vi
我們要保存文件了,存盤(pán)并離開(kāi)的命令很簡(jiǎn)單,輸入“:wq”即可保存文件并離開(kāi)(注意,按下:,該光標(biāo)就會(huì)移到最下面的一行)。這時(shí)在提示符后面輸入“l(fā)s-l”即可看到剛建立的test.txt文件,最后結(jié)果如圖10-4所示。圖10-4利用vi存儲(chǔ)文件這樣,文件test.txt已經(jīng)建立好了,需要注意的是,如果文件權(quán)限不對(duì),例如為-r--r--r--時(shí),那么可能會(huì)無(wú)法寫(xiě)入。可以使用“強(qiáng)制寫(xiě)入”的方式嗎?可以。使用“:wq!”多加一個(gè)感嘆號(hào)即可。不過(guò),需要特別注意,這是在“你的權(quán)限可以改變”的情況下可行的。
二。。。。命令行內(nèi)容說(shuō)明
如前所述,命令行或命令模式,就是在最下面一行中沒(méi)有顯示--INSERT--或者--REPLACE--字樣。通常,命令行中的命令參見(jiàn)表10-1(注意,當(dāng)按下“:”時(shí),光標(biāo)會(huì)自動(dòng)移到屏幕的最下面一行)。
表10-1命令行的命令一般模式:移動(dòng)光標(biāo)的方法h或向左方向鍵(←)
光標(biāo)向左移動(dòng)一個(gè)字符
j或向下方向鍵(↓)
光標(biāo)向下移動(dòng)一個(gè)字符
k或向上方向鍵(↑)
光標(biāo)向上移動(dòng)一個(gè)字符續(xù)表一般模式:移動(dòng)光標(biāo)的方法l或向右方向鍵(→)
光標(biāo)向右移動(dòng)一個(gè)字符
如果想要進(jìn)行多次移動(dòng)的話,例如向下移動(dòng)30行,可以使用“30j”或“30↓”的組合鍵,即加上想要進(jìn)行的次數(shù)(數(shù)字)后,操作即可
[Ctrl]+[f]
屏幕“向下”移動(dòng)一頁(yè),相當(dāng)于[PageDown]按鍵(常用)
[Ctrl]+[b]
屏幕“向上”移動(dòng)一頁(yè),相當(dāng)于[PageUp]按鍵(常用)
[Ctrl]+[d]
屏幕“向下”移動(dòng)半頁(yè)
[Ctrl]+[u]
屏幕“向上”移動(dòng)半頁(yè)一般模式:移動(dòng)光標(biāo)的方法+
光標(biāo)移動(dòng)到非空格符的下一行
-
光標(biāo)移動(dòng)到非空格符的上一行
n<space>
n表示“數(shù)字”,例如20。按下數(shù)字后再按空格鍵,光標(biāo)會(huì)向右移動(dòng)這一行的n個(gè)字符。例如20<space>則光標(biāo)會(huì)向后面移動(dòng)20個(gè)字符距離
0
這是數(shù)字“0”:移動(dòng)到這一行的最前面字符處(常用)
$
移動(dòng)到這一行的最后面字符處(常用)
H
光標(biāo)移動(dòng)到這個(gè)屏幕的最上方那一行
M
光標(biāo)移動(dòng)到這個(gè)屏幕的中央那一行
L
光標(biāo)移動(dòng)到這個(gè)屏幕的最下方那一行
G
移動(dòng)到這個(gè)文件的最后一行(常用)
nG
n為數(shù)字。移動(dòng)到這個(gè)文件的第n行。例如20G則會(huì)移動(dòng)到這個(gè)文件的第20行(可配合:setnu)
gg
移動(dòng)到這個(gè)文件的第一行,相當(dāng)于1G(常用)
n<Enter>
n為數(shù)字。光標(biāo)向下移動(dòng)n行(常用)一般模式:搜索與替換/word
從光標(biāo)位置開(kāi)始,向下尋找一個(gè)名為word的字符串。例如要在文件內(nèi)搜索vbird這個(gè)字符串,就輸入/vbird即可(常用)
?word
從光標(biāo)位置開(kāi)始,向上尋找一個(gè)名為word的字符串
n
n是英文按鍵。表示“重復(fù)前一個(gè)搜索的動(dòng)作”。舉例來(lái)說(shuō),如果剛剛執(zhí)行/vbird去向下搜索vbird字符串,則按下n后,會(huì)向下繼續(xù)搜索下一個(gè)名稱(chēng)為vbird的字符串。如果是執(zhí)行?vbird的話,那么按下n,則會(huì)向上繼續(xù)搜索名稱(chēng)為vbird的字符串
N
這個(gè)N是英文按鍵。與n剛好相反,為“反向”進(jìn)行前一個(gè)搜索操作。例如/vbird后,按下N則表示“向上”搜索vbird續(xù)表一般模式:搜索與替換:n1、n2s/word1/word2/g
n1與n2為數(shù)字。在第n1與n2行之間尋找word1這個(gè)字符串,并將該字符串替換為word2。舉例來(lái)說(shuō),在100到200行之間搜索vbird并替換為VBIRD則:“:100、200s/vbird/VBIRD/g”(常用)
:1、$s/word1/word2/g
從第一行到最后一行尋找word1字符串,并將該字符串替換為word2(常用)
:1、$s/word1/word2/gc
從第一行到最后一行尋找word1字符串,并將該字符串替換為word2。且在替換前顯示提示符給用戶(hù)確認(rèn)(conform)是否需要替換(常用)一般模式:刪除、復(fù)制與粘貼x,X
在一行字中,x為向后刪除一個(gè)字符(相當(dāng)于[Del]按鍵),X為向前刪除一個(gè)字符(相當(dāng)于[backspace]即退格鍵)(常用)
nx
n為數(shù)字,連續(xù)向后刪除n個(gè)字符。舉例來(lái)說(shuō),要連續(xù)刪除10個(gè)字符,則輸入“10x”
dd
刪除光標(biāo)所在的那一整行(常用)
ndd
n為數(shù)字。從光標(biāo)位置開(kāi)始,刪除向下n列,例如20dd則是刪除20列(常用)
d1G
刪除光標(biāo)所在位置到第一行的所有數(shù)據(jù)
dG
刪除光標(biāo)所在位置到最后一行的所有數(shù)據(jù)
d$
刪除光標(biāo)所在位置到該行的最后一個(gè)字符
d0
d的后面是數(shù)字0,刪除光標(biāo)所在處,到該行的最前面一個(gè)字符
yy
復(fù)制光標(biāo)所在的那一行(常用)
nyy
n為數(shù)字。復(fù)制光標(biāo)所在的向下n行,例如20yy則是復(fù)制20行(常用)
y1G
復(fù)制光標(biāo)所在行到第一行的所有數(shù)據(jù)
yG
復(fù)制光標(biāo)所在行到最后一行的所有數(shù)據(jù)
y0
復(fù)制光標(biāo)所在的那個(gè)字符到該行行首的所有數(shù)據(jù)
y$
復(fù)制光標(biāo)所在的那個(gè)字符到該行行尾的所有數(shù)據(jù)一般模式:刪除、復(fù)制與粘貼p,P
p為將已復(fù)制的數(shù)據(jù)粘貼到光標(biāo)的下一行,P則為貼在光標(biāo)上一行。舉例來(lái)說(shuō),當(dāng)前光標(biāo)在第20行,且已經(jīng)復(fù)制了10行數(shù)據(jù)。則按下p后,那10行數(shù)據(jù)會(huì)貼在原來(lái)的20行之后,即由21行開(kāi)始貼。但如果是按下P,那么原來(lái)的第20行會(huì)被變成30行(常用)
J
將光標(biāo)所在行與下一列的數(shù)據(jù)結(jié)合成同一行
c
重復(fù)刪除多個(gè)數(shù)據(jù),例如向下刪除10行,[10cj]
u
復(fù)原前一個(gè)操作(常用)
[Ctrl]+r
重做上一個(gè)操作(常用)
u與[Ctrl]+r是很常用的命令。一個(gè)是復(fù)原,另一個(gè)則是重做一次。利用這兩個(gè)功能按鍵,編輯起來(lái)就得心應(yīng)手。續(xù)表一般模式:刪除、復(fù)制與粘貼.
這就是小數(shù)點(diǎn)。意思是重復(fù)前一個(gè)動(dòng)作。如果想重復(fù)刪除、重復(fù)粘貼,按下小數(shù)點(diǎn)“.”就可以(常用)進(jìn)入編輯模式i、I
插入:在當(dāng)前光標(biāo)所在處插入輸入文字,已存在的文字會(huì)向后退;其中,i為“從當(dāng)前光標(biāo)所在處插入”,I為“在當(dāng)前所在行的第一個(gè)非空格符處開(kāi)始插入”(常用)
a、A
a為“從當(dāng)前光標(biāo)所在的下一個(gè)字符處開(kāi)始插入”,A為“從光標(biāo)所在行的最后一個(gè)字符處開(kāi)始插入”(常用)
o、O
這是英文字母o的大小寫(xiě)。o為“在當(dāng)前光標(biāo)所在的下一行處插入新的一行”;O為“在當(dāng)前光標(biāo)所在處的上一行插入新的一行”(常用)
r、R
替換:r會(huì)替換光標(biāo)所在的那一個(gè)字符;R會(huì)一直替換光標(biāo)所在的文字,直到按下ESC鍵為止(常用)
使用上面這些按鍵時(shí),在vi畫(huà)面的左下角處會(huì)出現(xiàn)“--INSERT--”或“--REPLACE--”的字樣。通過(guò)名稱(chēng)就知道是什么操作。特別注意,上面也提過(guò)了,想在文件中輸入字符時(shí),一定要在左下角處看到INSERT/REPLACE才能輸入。
Esc
退出編輯模式,回到一般模式中(常用)命令行命令模式:w
將編輯的數(shù)據(jù)寫(xiě)入硬盤(pán)文件中(常用)
:w!
若文件屬性為“只讀”時(shí),強(qiáng)制寫(xiě)入該文件。不過(guò),到底能不能寫(xiě)入,與文件權(quán)限有關(guān)
:q
離開(kāi)vi(常用)
:q!
若曾修改過(guò)文件,又不想存儲(chǔ),使用!為強(qiáng)制離開(kāi)不存儲(chǔ)文件
注意一下,那個(gè)感嘆號(hào)(!)在vi當(dāng)中,常常具有“強(qiáng)制”的意思。
:wq
存儲(chǔ)后離開(kāi),若為:wq!則為強(qiáng)制存儲(chǔ)后離開(kāi)(常用)
:e!
將文件還原到最原始的狀態(tài)
ZZ
若文件沒(méi)有更改,則不存儲(chǔ)離開(kāi),若文件已經(jīng)更改,則存儲(chǔ)后離開(kāi)
:w[filename]
將編輯的數(shù)據(jù)存儲(chǔ)成另一個(gè)文件(類(lèi)似另存新文件)
:r[filename]
在編輯的數(shù)據(jù)中,讀入另一個(gè)文件的數(shù)據(jù)。即將“filename”這個(gè)文件內(nèi)容加到光標(biāo)所在行的后面
:n1、n2w[filename]
將n1到n2的內(nèi)容存儲(chǔ)成filename文件
:!command
暫時(shí)離開(kāi)vi到命令行模式下執(zhí)行command的顯示結(jié)果。例如“:!ls/home”,即可在vi中查看/home中以ls輸出的文件信息
:setnu
顯示行號(hào),設(shè)置之后,會(huì)在每一行的前綴顯示該行的行號(hào)
:setnonu
與setnu相反,為取消行號(hào)
別注意,在vi中,“數(shù)字”是很有意義的。數(shù)字通常表示重復(fù)做幾次的意思。也有可能表示要去哪里的意思。舉例來(lái)說(shuō),要?jiǎng)h除50行,則是用“50dd”。數(shù)字加在動(dòng)作之前。要向下移動(dòng)20行,使用“20j”或者“20↓”即可。
三。。。文件的恢復(fù)與暫存盤(pán)
vi具有“可恢復(fù)”的功能。vi憑借什么進(jìn)行恢復(fù)呢?很簡(jiǎn)單,臨時(shí)文件。舉例來(lái)說(shuō),當(dāng)我們編輯一個(gè)文件時(shí),假設(shè)名稱(chēng)為/tmp/passwd,那么在這個(gè)/tmp中就會(huì)有一個(gè)臨時(shí)文件,文件名為“/tmp/.passwd.swp”,這是一個(gè)隱藏文件,我們所進(jìn)行的一些修改,都會(huì)暫時(shí)存在該文件中。如果在文件修改過(guò)程中,系統(tǒng)死機(jī),那么下次再重新vi/tmp/passwd時(shí),系統(tǒng)就會(huì)告訴你,是否需要恢復(fù)(recovery)成修改過(guò)程中的模樣?如果按下(R),就可以將數(shù)據(jù)恢復(fù)到修改過(guò)程的樣子,而不是源文件。這是個(gè)很有用的功能。
也就是說(shuō),如果有一天,在/tmp中執(zhí)行l(wèi)s-al時(shí),發(fā)現(xiàn)有兩個(gè)文件,文件名分別為passwd與.passwd.swp,那么,(1)可能有人在編輯這個(gè)文件;(2)之前你在編輯這個(gè)文件時(shí),因?yàn)槟承┪粗蛩貙?dǎo)致vi程序中斷,則該臨時(shí)文件就會(huì)存在。如果是狀態(tài)(2),則此時(shí)可以將該.passwd.swp文件刪除,或者直接vi/tmp/passwd,在vi詢(xún)問(wèn)是否恢復(fù)時(shí),選擇恢復(fù),然后存儲(chǔ)更新/tmp/passwd,之后再將這個(gè)/tmp/.passwd.swp文件刪除即可。如果不刪除的話,那么每次編輯這個(gè)文件時(shí),都會(huì)告訴你該文件有問(wèn)題。摘自維基百科/wiki/VimVim是從vi發(fā)展出來(lái)的一個(gè)文本編輯器。代碼補(bǔ)完、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用。和Emacs并列成為類(lèi)Unix系統(tǒng)用戶(hù)最喜歡的編輯器。Vim的第一個(gè)版本由BramMoolenaar在1991年發(fā)布。最初的簡(jiǎn)稱(chēng)是ViIMitation,隨著功能的不斷增加,正式名稱(chēng)改成了ViIMproved?,F(xiàn)在是在開(kāi)放源代碼方式下發(fā)行的自由軟件。Vim歷史BramMoolenaar在80年代末購(gòu)入他的Amiga計(jì)算機(jī)時(shí),Amiga上還沒(méi)有他最常用的編輯器vi。Bram從一個(gè)開(kāi)源的vi復(fù)制Stevie開(kāi)始,開(kāi)發(fā)了Vim的1.0版本。最初的目標(biāo)只是完全復(fù)制vi的功能,那個(gè)時(shí)候的Vim是ViIMitation(模擬)的簡(jiǎn)稱(chēng)。1991年Vim1.14版被"FredFishDisk#591"這個(gè)Amiga用的免費(fèi)軟體集所收錄了。1992年1.22版本的Vim被移植到了UNIX和MS-DOS上。從那個(gè)時(shí)候開(kāi)始,Vim的全名就變成ViIMproved(改良)了。在這之后,Vim加入了不計(jì)其數(shù)的新功能。做為第一個(gè)里程碑的是1994年的3.0版本加入了多視窗編輯模式(分割視窗)。從那之后,同一螢?zāi)豢梢燥@示的Vim編輯文件數(shù)可以不止一個(gè)了。1996年發(fā)布的Vim4.0是第一個(gè)利用圖型介面(GUI)的版本。1998年5.0版本的Vim加入了highlight(語(yǔ)法高亮)功能。2001年的Vim6.0版本加入了代碼折疊、插件、多國(guó)語(yǔ)言支持、垂直分割視窗等功能。2006年5月發(fā)布的Vim7.0版更加入了拼字檢查、上下文相關(guān)補(bǔ)全,標(biāo)簽頁(yè)編輯等新功能?,F(xiàn)在最新的版本是2008年8月發(fā)布的Vim7.2,該版本合并了vim7.1以來(lái)的所有修正補(bǔ)丁,并且加入了腳本的浮點(diǎn)數(shù)支持。學(xué)習(xí)曲線對(duì)于大多數(shù)用戶(hù)來(lái)說(shuō),Vim有著一個(gè)比較陡峭的學(xué)習(xí)曲線。這意味著開(kāi)始學(xué)習(xí)的時(shí)候可能會(huì)進(jìn)展緩慢,但是一旦掌握一些基本操作之后,能大幅度提高編輯效率。為了幫助學(xué)習(xí),Vim為初學(xué)者準(zhǔn)備了Vim教學(xué)。通??梢栽赨nix系統(tǒng)命令行下輸入"vimtutor"或者點(diǎn)擊Windows系統(tǒng)桌面上的Vim教學(xué)圖標(biāo)進(jìn)入。在Vim用戶(hù)手冊(cè)中更加詳細(xì)的描述了Vim的基礎(chǔ)和進(jìn)階功能??梢栽赩im中輸入":helpuser-manual"進(jìn)入用戶(hù)手冊(cè)。手冊(cè)除了原始的英文版本之外,也被志愿者翻譯成了各國(guó)文字,也包括了中文。新用戶(hù)也應(yīng)該學(xué)習(xí)Vim的幫助系統(tǒng)??梢栽赩im中輸入不帶參數(shù)的"help"來(lái)閱讀主幫助文件。模式從vi派生出來(lái)的Vim具有多種模式,這種獨(dú)特的設(shè)計(jì)容易使初學(xué)者產(chǎn)生混淆。幾乎所有的編輯器都會(huì)有插入和執(zhí)行命令兩種模式,并且大多數(shù)的編輯器使用了與Vim截然不同的方式:命令菜單(鼠標(biāo)或者鍵盤(pán)驅(qū)動(dòng)),組合鍵(通常通過(guò)control鍵(CTRL)和alt鍵(ALT)組成)或者鼠標(biāo)輸入。Vim和vi一樣,僅僅通過(guò)鍵盤(pán)來(lái)在這些模式之中切換。這就使得Vim可以不用進(jìn)行菜單或者鼠標(biāo)操作,并且最小化組合鍵的操作。對(duì)文字錄入員或者程序員可以大大增強(qiáng)速度和效率。Vim具有6種基本模式和5種派生模式。1.基本模式(1)普通模式在普通模式中,用戶(hù)可以執(zhí)行一般的編輯器命令,比如移動(dòng)光標(biāo),刪除文本等等。這也是Vim啟動(dòng)后的默認(rèn)模式。這正好和許多新用戶(hù)期待的操作方式相反(大多數(shù)編輯器默認(rèn)模式為插入模式)。Vim強(qiáng)大的編輯能力中很大部分是來(lái)自于其普通模式命令。普通模式命令往往需要一個(gè)操作符結(jié)尾。例如普通模式命令"dd"刪除當(dāng)前行,但是第一個(gè)"d"的后面可以跟另外的移動(dòng)命令來(lái)代替第二個(gè)"d",比如用移動(dòng)到下一行的"j"鍵就可以刪除當(dāng)前行和下一行。另外還可以指定命令重復(fù)次數(shù),"2dd"(重復(fù)"dd"兩次),和"dj"的效果是一樣的。用戶(hù)學(xué)習(xí)了各種各樣的文本間移動(dòng)/跳轉(zhuǎn)的命令和其他的普通模式的編輯命令,并且能夠靈活組合使用的話,能夠比那些沒(méi)有模式的編輯器更加高效的進(jìn)行文本編輯。在普通模式中,有很多方法可以進(jìn)入插入模式。比較普通的方式是按"a"(append/追加)鍵或者"i"(insert/插入)鍵。(2)插入模式在這個(gè)模式中,大多數(shù)按鍵都會(huì)向文本緩沖中插入文本。大多數(shù)新用戶(hù)希望文本編輯器編輯過(guò)程中一直保持這個(gè)模式。在插入模式中,可以按ESC鍵回到普通模式。(3)可視模式這個(gè)模式與普通模式比較相似。但是移動(dòng)命令會(huì)擴(kuò)大高亮的文本區(qū)域。高亮區(qū)域可以是字符、行或者是一塊文本。當(dāng)執(zhí)行一個(gè)非移動(dòng)命令時(shí),命令會(huì)被執(zhí)行到這塊高亮的區(qū)域上。Vim的"文本對(duì)象"也能和移動(dòng)命令一樣用在這個(gè)模式中。(4)選擇模式這個(gè)模式和無(wú)模式編輯器的行為比較相似(Windows標(biāo)準(zhǔn)文本控件的方式)。這個(gè)模式中,可以用鼠標(biāo)或者光標(biāo)鍵高亮選擇文本,不過(guò)輸入任何字符的話,Vim會(huì)用這個(gè)字符替換選擇的高亮文本塊,并且自動(dòng)進(jìn)入插入模式。(5)命令行模式在命令行模式中可以輸入會(huì)被解釋成并執(zhí)行的文本。例如執(zhí)行命令(":"鍵),搜索("/"和"?"鍵)或者過(guò)濾命令("!"鍵)。在命令執(zhí)行之后,Vim返回到命令行模式之前的模式,通常是普通模式。(6)Ex模式這和命令行模式比較相似,在使用":visual"命令離開(kāi)Ex模式前,可以一次執(zhí)行多條命令。2.派生模式(1)操作符等待模式這個(gè)派生模式指普通模式中,執(zhí)行一個(gè)操作命令后Vim等待一個(gè)"動(dòng)作"來(lái)完成這個(gè)命令。Vim也支持在操作符等待模式中使用"文本對(duì)象"作為動(dòng)作,包括"aw"一個(gè)單詞(aword)、"as"一個(gè)句子(asentence)、"ap"一個(gè)段落(aparagraph)等等。比如,在普通模式下"d2as"刪除當(dāng)前和下一個(gè)句子。在可視模式下"apU"把當(dāng)前段落所有字母大寫(xiě)。(2)插入普通模式這個(gè)模式是在插入模式下按下ctrl-o鍵的時(shí)候進(jìn)入。這個(gè)時(shí)候暫時(shí)進(jìn)入普通模式,執(zhí)行完一個(gè)命令之后,Vim返回插入模式(3)插入可視模式這個(gè)模式是在插入模式下按下ctrl-o鍵并且開(kāi)始一個(gè)可視選擇的時(shí)候開(kāi)始。在可視區(qū)域選擇取消的時(shí)候,Vim返回插入模式。(4)插入選擇模式通常這個(gè)模式由插入模式下鼠標(biāo)拖拽或者shift方向鍵來(lái)進(jìn)入。當(dāng)選擇區(qū)域取消的時(shí)候,Vim返回插入模式。(5)替換模式這是一個(gè)特殊的插入模式,在這個(gè)模式中可以做和插入模式一樣的操作,但是每個(gè)輸入的字符都會(huì)覆蓋文本緩沖中已經(jīng)存在的字符。在普通模式下按"R"鍵進(jìn)入。其他EvimEvim是一個(gè)特殊的GUI模式用來(lái)盡量的表現(xiàn)的和"無(wú)模式"編輯器一樣。編輯器自動(dòng)進(jìn)入并且停留在插入模式,用戶(hù)只能通過(guò)菜單、鼠標(biāo)和鍵盤(pán)控制鍵來(lái)對(duì)文本進(jìn)行操作。可以在命令行下輸入"evim"或者"vim-y"進(jìn)入。在Windows下,通常也可以點(diǎn)擊桌面上Evim的圖標(biāo)。功能概要根據(jù)設(shè)定可以和原始vi完全兼容多緩沖編輯任意個(gè)數(shù)的分割窗口(橫,豎)具備列表和字典功能的腳本語(yǔ)言可以在腳本中調(diào)用Perl,Ruby,Python,Tcl,MzScheme單詞縮寫(xiě)功能動(dòng)態(tài)單詞補(bǔ)全多次撤銷(xiāo)和重做對(duì)應(yīng)400種以上文本文件的語(yǔ)法高亮C/C++,Perl,Java,Ruby,Python等40種以上語(yǔ)言的自動(dòng)縮排利用ctags的標(biāo)簽中跳轉(zhuǎn)崩潰后文件恢復(fù)光標(biāo)位置和打開(kāi)的緩沖狀態(tài)的保存復(fù)原(session功能)可以對(duì)兩個(gè)文件進(jìn)行差分,同步功能的diff模式遠(yuǎn)程文件編輯Omni補(bǔ)全(上下文相關(guān)的補(bǔ)全)幫助Vim提供了文本形式的大量文檔。并且Vim為了能夠快速找到問(wèn)題的解決方案,提供了各種各樣的功能。根據(jù)Vim自己的幫助文件語(yǔ)法,關(guān)鍵字會(huì)被各種各樣醒目的顏色表示出來(lái)。可以用快捷鍵象在瀏覽器中那樣瀏覽幫助文件。在GUI版的Vim中還可以使用鼠標(biāo)在幫助文件中移動(dòng)。方便用戶(hù)尋找問(wèn)題解決方案的功能還不止這些,其中最主要的是':helpgrep'命令。使用這條命令,用戶(hù)可以在所有幫助文件中搜索想要察看的內(nèi)容,用':cwindows'可以在另一個(gè)窗口中表示搜索的結(jié)果,根據(jù)搜索的結(jié)果自動(dòng)在幫助文件內(nèi)跳轉(zhuǎn)。使用Vim的幫助功能,更可以在搜索的結(jié)果中,繼續(xù)進(jìn)行搜索。程序開(kāi)發(fā)相關(guān)功能Vim是程序員為了方便的編寫(xiě)程序而開(kāi)發(fā)的編輯器。Vim具有可以讓寫(xiě)代碼的工作變得輕松愉快的各種各樣功能。和集成開(kāi)發(fā)環(huán)境一樣,Vim具有可以配置成在編輯代碼源文件之后直接進(jìn)行編譯的功能。編譯出錯(cuò)的情況下,可以在另一個(gè)窗口中顯示出錯(cuò)誤。根據(jù)錯(cuò)誤信息,直接跳轉(zhuǎn)到正在編輯的源文件出錯(cuò)位置。代碼高亮,文本折疊,上下文關(guān)聯(lián)補(bǔ)完都是對(duì)程序員特別有幫助的功能(參考':helpquickfix')文件比較可以逐行的對(duì)文本文件進(jìn)行比較。Vim可以并排顯示兩個(gè)版本的文件,同時(shí)以各種各樣的顏色來(lái)表示有差別部分。改變過(guò)、新增的或者是被刪除的行會(huì)以顏色高亮來(lái)強(qiáng)調(diào),沒(méi)有改變過(guò)的部分則會(huì)被自動(dòng)折疊表示。對(duì)于已經(jīng)在vim中打開(kāi)的兩個(gè)緩沖區(qū),分別使用:diffthis之后將會(huì)對(duì)這兩個(gè)緩沖區(qū)的內(nèi)容進(jìn)行比較,被比較的緩沖區(qū)可以是一個(gè)尚未存盤(pán)的內(nèi)存中的緩沖區(qū)。在比較兩個(gè)文件的不同之處時(shí),可以用:diffget和:diffput命令對(duì)每一處不同進(jìn)行雙向的同步,也可以在比較不同時(shí)對(duì)內(nèi)容進(jìn)行其它編輯,然后用:diffupdate對(duì)最新內(nèi)容重新進(jìn)行比較。在瀏覽兩個(gè)文件的不同之處時(shí),可以用[c和]c兩個(gè)Normal模式的命令直接跳轉(zhuǎn)到上一個(gè)和下一個(gè)不同之處。可以通過(guò)diffopt等選項(xiàng)更精細(xì)地控制哪些區(qū)別被認(rèn)為是真正的不同之處,比如可以設(shè)置比較時(shí)忽略空白字符數(shù)量的不同。Unix下可以用vimdiff命令來(lái)使用這個(gè)功能。腳本語(yǔ)言Vim有她自己的腳本語(yǔ)言,使用腳本語(yǔ)言寫(xiě)成的宏可以實(shí)現(xiàn)自動(dòng)執(zhí)行復(fù)雜的操作。用-s選項(xiàng)啟動(dòng)Vim,或者直接切換到宏所在目錄使用':source'命令都可以執(zhí)行Vim腳本。Vim的配置文件就可以作為Vim腳本的一個(gè)范例,Unix和Linux下配置文件名是.vimrc,Windows下配置文件一般叫做_vimrc。這個(gè)文件在啟動(dòng)Vim的時(shí)候被自動(dòng)執(zhí)行。Vim腳本語(yǔ)言可以使用Vim命令行模式的所有命令,使用':normal'命令還可以使用通常模式中的所有命令。Vim腳本語(yǔ)言具有數(shù)字,字符串兩種數(shù)據(jù)類(lèi)型。用數(shù)字代表布爾類(lèi)型,0代表假,之外的數(shù)全代表真。最新的Vim7更提供了列表、關(guān)聯(lián)數(shù)組等高級(jí)數(shù)據(jù)結(jié)構(gòu)。Vim腳本語(yǔ)言也擁有各種比較運(yùn)算符和算術(shù)運(yùn)算符??刂平Y(jié)構(gòu)實(shí)現(xiàn)了if分支和for/while循環(huán)。用戶(hù)還可以自己定義函數(shù),并且可以使用超過(guò)100種的預(yù)定義函數(shù)。編寫(xiě)成的腳本文件可以在調(diào)試模式中進(jìn)行調(diào)試。不足之處大文件讀取速度很慢(可用下載名為L(zhǎng)argeFile的Script并安裝已優(yōu)化)LargeFile即使文件不大,如果有非常長(zhǎng)的行的話,處理也會(huì)變慢(同上)vim自己的腳本語(yǔ)言過(guò)于復(fù)雜。缺乏自動(dòng)執(zhí)行和窗口管理的命令。(新手往往會(huì)有這種感覺(jué))存在類(lèi)似Ctrl-1等不能被映射的鍵(限于某些字符終端的性能)轉(zhuǎn)自他人博客:它們都是多模式編輯器,不同的是vim是vi的升級(jí)版本,它不僅兼容vi的所有指令,而且還有一些新的特性在里面。
vim的這些優(yōu)勢(shì)主要體現(xiàn)在以下幾個(gè)方面:1、多級(jí)撤消
我們知道在vi里,按u只能撤消上次命令,而在vim里可以無(wú)限制的撤消。2、易用性
vi只能運(yùn)行于unix中,而vim不僅可以運(yùn)行于unix,windows,mac等多操作平臺(tái)。3、語(yǔ)法加亮
vim可以用不同的顏色來(lái)加亮你的代碼。4、可視化操作
就是說(shuō)vim不僅可以在終端運(yùn)行,也可以運(yùn)行于xwindow、macos、windows。5、對(duì)vi的完全兼容
某些情況下,你可以把vim當(dāng)成vi來(lái)使用。2.5Vi編輯器的使用Vi(即visualinterface的簡(jiǎn)稱(chēng))許多年來(lái)一直是Linux上主要的文本編輯軟件。它可以進(jìn)行文本輸入、刪除、查找、替換、塊操作等諸多文本操作。Vi有許多命令,初學(xué)者可能會(huì)覺(jué)得它比較煩瑣,但熟練之后,就會(huì)發(fā)現(xiàn)Vi是一個(gè)簡(jiǎn)單易用并且具備強(qiáng)大功能的源程序編輯器。2.5.1Vi的工作模式Vi有3種工作模式:命令模式(CommandMode)、插入模式(InsertMode)和末行模式(LastLineMode),如圖2-4所示。1.命令模式在Shell中啟動(dòng)Vi時(shí),最初就是進(jìn)入命令模式。在該模式下可以輸入各種Vi命令,可以進(jìn)行光標(biāo)的移動(dòng),字符、字、行的刪除,復(fù)制,粘貼等操作。此時(shí),從鍵盤(pán)上輸入的任何字符都作為命令來(lái)解釋。在其他兩種模式下,按鍵,就可以轉(zhuǎn)換到命令模式。圖2-4Vi編輯器的3種工作模式注意:在此模式下輸入的任何字符屏幕都不會(huì)顯示出來(lái)。2.插入模式插入模式主要用于輸入文本。在該模式下,用戶(hù)輸入的任何字符都作為文件的內(nèi)容保存起來(lái),并會(huì)顯示在屏幕上。在命令模式下輸入i、a等命令就可以進(jìn)入插入模式。要返回到命令模式,只需按鍵即可。3.末行模式在命令模式下,按<:>鍵就進(jìn)入了末行模式。此時(shí)Vi在窗口的最后一行顯示一個(gè)":",并等待用戶(hù)輸入命令。在末行模式下,可以進(jìn)行諸如保存文件、退出、查找字符串、文本替換、顯示行號(hào)等操作。一條命令執(zhí)行完畢,就會(huì)返回到命令模式。提示:當(dāng)處于末行模式,并已經(jīng)輸入了一條命令的一部分而不想繼續(xù)時(shí),按幾次鍵刪除已輸入的命令或直接按鍵都可以進(jìn)入命令模式。2.5.2啟動(dòng)Vi輸入以下命令都可以啟動(dòng)Vi。Vi:不指定文件名,在保存文件時(shí)需要指定文件名。Vi文件名:該文件既可以是已存在的也可以是新建的。vi+n文件名:進(jìn)入Vi,光標(biāo)停在第n行開(kāi)始處。Vi+文件名:進(jìn)入Vi,光標(biāo)停在文件最后一行開(kāi)始處。Vi+/字符串文件名:進(jìn)入Vi,光標(biāo)停在第一個(gè)字符串處。如圖2-5所示為輸入"Vinewfile"命令時(shí)Vi的窗口,"~"表示該行是新的沒(méi)有被編輯過(guò)的行。2.5.3保存文件和退出Vi在命令模式下按兩次鍵,將保存文件并退出Vi。或在末行模式下輸入如下命令。w:保存當(dāng)前正在編輯的文件,但不退出Vi,w是write的首字母。w文件名:將當(dāng)前文件的內(nèi)容保存由"文件名"指定的新文件中,若該文件已存在則產(chǎn)
生錯(cuò)誤,該命令也不會(huì)退出Vi。w!文件名:將當(dāng)前文件的內(nèi)容保存由"文件名"指定的新文件中,若該文件已存在則覆
蓋原文件,該命令也不會(huì)退出Vi。q:不進(jìn)行文件保存直接退出Vi,若文件有改動(dòng)過(guò)而沒(méi)有保存將產(chǎn)生錯(cuò)誤,q是quit
的首字母。q!:強(qiáng)行退出Vi,若文件內(nèi)容有改動(dòng)則恢復(fù)到文件的原始內(nèi)容。wq:保存并退出Vi,這是最常用的退出Vi的方式。提示:在末行模式下,輸入如下命令。:setnumber或:setnu可以給每一行添加行號(hào),這在調(diào)試程序時(shí)會(huì)很有用。注意:行號(hào)并不是文件內(nèi)容的一部分。2.5.4光標(biāo)的移動(dòng)在Vi的插入模式下,一般使用鍵盤(pán)上的4個(gè)方向鍵來(lái)移動(dòng)光標(biāo)。而在命令行模式下則有很多移動(dòng)光標(biāo)的方法,常用的移動(dòng)方法如下所示。↑:移動(dòng)到上一行,所在的列不變。↓:移動(dòng)到上一行,所在的列不變?!鹤笠埔粋€(gè)字符,所在的行不變?!河乙埔粋€(gè)字符,所在的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度直播平臺(tái)主播培訓(xùn)及管理合同
- 2025年度新能源汽車(chē)產(chǎn)業(yè)投資合作合同
- 二零二五年度商標(biāo)共營(yíng)協(xié)議及跨國(guó)品牌合作合同
- 二零二五年度超市商品陳列與文化氛圍營(yíng)造合同
- 2025年度民宿租賃合同終止及服務(wù)質(zhì)量協(xié)議
- 二零二五年度集體合同簽訂與新型學(xué)徒制實(shí)施
- 二零二五年度個(gè)人對(duì)個(gè)人科技成果轉(zhuǎn)化借款合同
- 2025年度機(jī)關(guān)炊事員食品安全培訓(xùn)聘用協(xié)議
- 日常行政管理事務(wù)處理指導(dǎo)書(shū)
- 日化用品行業(yè)供應(yīng)鏈優(yōu)化與市場(chǎng)拓展策略研究計(jì)劃
- 米伊林《十萬(wàn)個(gè)為什么》導(dǎo)讀課課件
- 五年(2020-2024)高考?xì)v史真題分類(lèi)匯編(山東)專(zhuān)題12 世界殖民體系的形成、瓦解與亞非拉民族民主運(yùn)動(dòng)(原卷版)
- 第六章-1八綱辨證
- 《中外城市建設(shè)史》考試復(fù)習(xí)題庫(kù)(附答案)
- 網(wǎng)絡(luò)平臺(tái)運(yùn)營(yíng)合同三篇
- 《S品牌管理有限公司銷(xiāo)售人員績(jī)效考核問(wèn)題及優(yōu)化建議(定量論文)》11000字
- 九年級(jí)語(yǔ)文下冊(cè) 第9課 魚(yú)我所欲也(分層作業(yè))(學(xué)生版)
- 2023年公務(wù)員多省聯(lián)考《申論》題(重慶二卷)及參考答案
- 如何自制固定翼航模
- 食堂延期合同模板(2篇)
- 2024至2030年中國(guó)小模數(shù)齒輪市場(chǎng)調(diào)查與行業(yè)前景預(yù)測(cè)專(zhuān)題研究報(bào)告
評(píng)論
0/150
提交評(píng)論