vi指令
vi指令是UNIX作業系統和類UNIX作業系統中最通用的全螢幕純文字編輯器。Linux中的vi編輯器也叫vim,它是vi的增強版(vi Improved),與vi編輯器完全相容,而且實作了很多增強功能。
vi編輯器支援編輯模式和指令模式,編輯模式下可以完成文本的編輯功能,指令模式下可以完成對檔案的操作指令,要正确使用vi編輯器就必須熟練掌握着兩種模式的切換。預設情況下,打開vi編輯器後自動進入指令模式。從編輯模式切換到指令模式使用“esc”鍵,從指令模式切換到編輯模式使用“A”、“a”、“O”、“o”、“I”、“i”鍵。
vi編輯器提供了豐富的内置指令,有些内置指令使用鍵盤組合鍵即可完成,有些内置指令則需要以冒号“:”開頭輸入。常用内置指令如下:
Ctrl+u:向檔案首翻半屏;
Ctrl+d:向檔案尾翻半屏;
Ctrl+f:向檔案尾翻一屏;
Ctrl+b:向檔案首翻一屏;
Esc:從編輯模式切換到指令模式;
ZZ:指令模式下儲存目前檔案所做的修改後退出vi;
:行号:光标跳轉到指定行的行首;
:$:光标跳轉到最後一行的行首;
x或X:删除一個字元,x删除光标後的,而X删除光标前的;
D:删除從目前光标到光标所在行尾的全部字元;
dd:删除光标行正行内容;
ndd:删除目前行及其後n-1行;
nyy:将目前行及其下n行的内容儲存到寄存器?中,其中?為一個字母,n為一個數字;
p:粘貼文本操作,用于将緩存區的内容粘貼到目前光标所在位置的下方;
P:粘貼文本操作,用于将緩存區的内容粘貼到目前光标所在位置的上方; /字元串:文本查找操作,用于從目前光标所在位置開始向檔案尾部查找指定字元串的内容,查找的字元串會被加亮顯示;
?name:文本查找操作,用于從目前光标所在位置開始向檔案頭部查找指定字元串的内容,查找的字元串會被加亮顯示;
a,bs/F/T:替換文本操作,用于在第a行到第b行之間,将F字元串換成T字元串。其中,“s/”表示進行替換操作;
a:在目前字元後添加文本;
A:在行末添加文本;
i:在目前字元前插入文本;
I:在行首插入文本;
o:在目前行後面插入一空行;
O:在目前行前面插入一空行;
:wq:在指令模式下,執行存盤退出操作;
:w:在指令模式下,執行存盤操作;
:w!:在指令模式下,執行強制存盤操作;
:q:在指令模式下,執行退出vi操作;
:q!:在指令模式下,執行強制退出vi操作;
:e檔案名:在指令模式下,打開并編輯指定名稱的檔案;
:n:在指令模式下,如果同時打開多個檔案,則繼續編輯下一個檔案;
:f:在指令模式下,用于顯示目前的檔案名、光标所在行的行号以及顯示比例;
:set number:在指令模式下,用于在最左端顯示行号;
:set nonumber:在指令模式下,用于在最左端不顯示行号;
文法 : vi(選項)(參數)
選項 :
+<行号>:從指定行号的行開始先是文本内容;
-b:以二進制模式打開檔案,用于編輯二進制檔案和可執行檔案;
-c<指令>:在完成對第一個檔案編輯任務後,執行給出的指令;
-d:以diff模式打開檔案,當多個檔案編輯時,顯示檔案差異部分;
-l:使用lisp模式,打開“lisp”和“showmatch”;
-m:取消寫檔案功能,重設“write”選項;
-M:關閉修改功能;
-n:不實用緩存功能;
-o<檔案數目>:指定同時打開指定數目的檔案;
-R:以隻讀方式打開檔案;
-s:安靜模式,不現實指令的任何錯誤資訊。
參數 :檔案清單:指定要編輯的檔案清單。多個檔案之間使用空格分隔開。
vi編輯器有三種工作方式:指令方式、輸入方式和ex轉義方式。通過相應的指令或操作,在這三種工作方式之間可以進行轉換。 指令方式 在Shell提示符後輸入指令vi,進入vi編輯器,并處于vi的指令方式。此時,從鍵盤上輸入的任何字元都被作為編輯指令來解釋,例如,a(append)表示附加指令,i(insert)表示插入指令,x表示删除字元指令等。如果輸入的字元不是vi的合法指令,則機器發出“報警聲”,光标不移動。另外,在指令方式下輸入的字元(即vi指令)并不在螢幕上顯示出來,例如,輸入i,螢幕上并無變化,但通過執行i指令,編輯器的工作方式卻發生變化:由指令方式變為輸入方式。 輸入方式 通過輸入vi的插入指令(i)、附加指令(a)、打開指令(o)、替換指令(s)、修改指令(c)或取代指令(r)可以從指令方式進入輸入方式。在輸入方式下,從鍵盤上輸入的所有字元都被插入到正在編輯的緩沖區中,被當做該檔案的正文。進入輸入方式後,輸入的可見字元都在螢幕上顯示出來,而編輯指令不再起作用,僅作為普通字母出現。例如,在指令方式下輸入字母i,進到輸入方式,然後再輸入i,就在螢幕上相應光标處添加一個字母i。 由輸入方式回到指令方式的辦法是按下Esc鍵。如果已在指令方式下,那麼按下Esc鍵就會發出“嘟嘟”聲。為了確定使用者想執行的vi指令是在指令方式下輸入的,不妨多按幾下Esc鍵,聽到嘟聲後再輸入指令。
ex轉義方式 vi和ex編輯器的功能是相同的,二者的主要差別是使用者界面。在vi中,指令通常是單個字母,如a,x,r等。而在ex中,指令是以Enter;鍵結束的指令行。vi有一個專門的“轉義”指令,可通路很多面向行的ex指令。為使用ex轉義方式,可輸入一個冒号(:)。作為ex指令提示符,冒号出現在狀态行(通常在螢幕最下一行)。按下中斷鍵(通常是Del鍵),可終止正在執行的指令。多數檔案管理指令都是在ex轉義方式下執行的(例如,讀取檔案,把編輯緩沖區的内容寫到檔案中等)。轉義指令執行後,自動回到指令方式。
例如::1,$s/I/i/g 按Enter鍵