1. 程式人生 > >vi編輯器使用編輯 (查詢,編輯,縮排格式)(一)

vi編輯器使用編輯 (查詢,編輯,縮排格式)(一)

Linux 系統下的文字編輯器有很多種,包括圖形模式下的gedit、kwrite等,文字模式下的vi、vim(vi的增強版本)、emacs等。其中vi和emacs是Linux系統中最常用的兩個編輯器。本節主要介紹vi編輯器,主要內容包括:

  •      vi編輯器的基本使用,包括vi的啟動與退出、工作模式的切換、游標的移動、螢幕的滾動、文字的插入與刪除、複製與粘帖、查詢與替換等。
  •      vi編輯器之程式編輯,包括程式設計中游標的跳轉、關鍵字的補全,以及程式碼的縮排等。

     希望通過本節的學習,能夠基本掌握vi編輯器的使用方法和相關技巧,能夠獨立完成程式原始碼的編輯和修改。

1 vi編輯器的基本使用

     vi編輯器是Linux系統下的標準編輯器。雖然命令繁多複雜,並且絕大多數功能的輸入都依靠鍵盤來完成,但如果我們熟悉掌握之後就會發現vi編輯器的功能、效率等都是其他圖形介面編輯器無法比擬的,下面讓我們來揭開它的神祕面紗。

1.1 vi的啟動

     在終端輸入命令vi,後面接著輸入想要建立或編輯的檔名,即可進入vi編輯器。

     $ vi example.c

     命令的結果如圖1-1所示:

1-1

圖1-1 vi編輯器新建檔案

     如果vi命令後面所輸入的檔案不存在,則系統會自動建立一個以該字串命名的文字檔案。如上圖,游標停留在左上方,由於新建檔案中沒有任何內容,所以每一行的開頭都為波浪線。視窗的底部為狀態列,顯示當前編輯檔案的相關資訊。

     開啟檔案後,游標停留在螢幕左上方。狀態列顯示了當前編輯檔案的檔名、行數以及字元數等資訊,如圖1-2所示。

     vi命令開啟檔案時還可以帶引數,這些引數用於修正vi的開啟方式,主要包括如下:

  •      -R 以只讀方式開啟檔案。

     如果只需閱讀檔案內容而不想對其進行修改時,可以使用這個引數,以防對檔案的誤操作,如下:

     $ vi –R example.c

     執行命令如圖1-3所示。

1-2 1-3

                                                                        圖1-2 vi編輯器開啟檔案                                                        圖1-3 以只讀方式開啟檔案

  •       -x 對檔案進行加密。

     該引數可以在儲存檔案時對其進行加密,以後每次開啟都需要輸入金鑰,否則將出現亂碼。

     如果在開啟vi時,沒有給出檔名,也沒有給出任何引數,即:

     $ vi

     命令結果如圖1-4所示:

1-4

圖1-4 直接開啟vi編輯器

     此時,vi編輯器中所有行都為空,視窗中央給出的是vi編輯器的使用幫助,當用戶在vi中輸入文字或執行命令時,該幫助資訊會自動消失。另外,如果以這種方式開啟vi編輯器,在儲存檔案時,需要指定檔名。

1.2 vi的工作模式

     vi有3種工作模式:普通模式、編輯模式和命令模式,這3種模式之間可以相互切換,如圖1-5所示。

1-5

圖1-5 vi編輯器的工作模式

1.普通模式

     由Shell進入vi編輯器時,首先進入普通模式。在普通模式下,從鍵盤輸入任何字元都被當作命令來解釋。普通模式下沒有任何提示符,當輸入命令時立即執行,不需要回車,而且輸入的字元不會在螢幕上顯示出來。

     普通模式下可以輸入命令進行游標的移動,字元、單詞、行的複製、粘帖以及刪除等操作。

2.編輯模式

     編輯模式主要用於文字的輸入。在該模式下,使用者輸入的任何字元都被作為檔案的內容儲存起來,並在螢幕上顯示出來。在普通模式下,輸入a(附加命令)、c(修改命令)、i(插入命令)、o(另起新行)、r(取代命令)以及s(替換命令)都將進入編輯模式,此時vi視窗的最後一行會顯示“插入”。輸入i命令時螢幕上並無變化,但是通過執行i命令,編輯器由普通模式切換為編輯模式,如圖1-6所示。

1-6

圖1-6 編輯器由普通模式切換為編輯模式

     接著輸入x=,螢幕顯示如圖1-7所示。

     要返回到普通模式,只需按鍵Esc即可。

1-7

圖1-7 在編輯模式下輸入字元

3.命令模式

     命令模式下,使用者可以對檔案進行一些附加處理。儘管普通模式下的命令可以完成很多功能,但要執行一些如字串查詢、替換、顯示行號等操作還是必須要進入命令模式的。

     在普通模式下輸入冒號即可進入命令模式,此時vi視窗的狀態行會顯示出冒號,等待使用者輸入命令。使用者輸入完成後,按回車執行,之後vi編輯器又返回到普通模式下。

1.3 檔案的儲存和退出

     當編輯完畢,需要退出vi編輯器時,可以在命令模式下使用命令退出vi,返回到Shell。

1.儲存退出

     儲存退出是指將緩衝區中的內容寫入檔案,可以使用的命令為wq和x,如圖1-8所示。

1-8

圖1-8 vi編輯器的儲存退出

2.強行退出

     強行退出是指無條件退出,不把緩衝區中的內容寫入檔案,所使用的命令為q!。其中感嘆號“!”表示不管檔案是否被修改,放棄所修改的內容強行退出。

3.直接退出

     直接退出和強行退出的區別是如果檔案內容有修改則給出提示,如圖1-9所示,否則直接退出。直接退出使用的命令為q。

1-9

圖1-9 vi編輯器的直接退出

     應該要注意一點,vi編輯器編輯檔案時,使用者的操作都是基於緩衝區中的副本進行的。如果退出時沒有儲存到磁碟,則緩衝區中的內容就會被丟失。所以,在退出vi編輯器時應該考慮是否需要儲存所編輯的內容,然後再選擇執行合適的退出命令。儲存命令為w,如果開啟vi時沒有給出檔名,這時還需要給相互檔名。