vi 文字編輯器

 

編輯器的重要性

不管是撰寫程式、編寫 script,甚至是打一封 e-mail,或是更改系統檔案的設定值,都需要用到編輯器。

 

全螢幕編輯器

定義:一次以一個電腦(終端機)畫面顯示文章,且游標可在所顯示文件任何區域內移動並進行新增、刪除或修改之編輯器。簡言之,一次顯示及工作範圍是整個螢幕。

 

行編輯器(ed)

行編輯器是最原始的編輯器,在大電腦主機的時代就有了。

ed 是作業系統內部指令,而非另外有 ed 這個程式檔案。即便在系統看不到任何檔案,也可以用,故少數修復系統問題時仍會有用。

 

 

UNIX 內建編輯器的考量

適應各種鍵盤,有最大的相容性。

只能用文字、數字、標點符號鍵,不能使用方向鍵。我們現在習慣於標準鍵盤,只是 IBM PC/AT 相容電腦的標準鍵盤,蘋果電腦、大型電腦的終端機鍵盤內容都不完全一樣。

同時兼顧程式大小的精簡及功能的完整,記憶體很小的環境也能使用。

 

vi 的基本指令

vi 檔名 <Enter>,會看全螢幕畫面。波浪符號 ~ 代表那一行沒有任何字(也沒有空白)。

要開始打字前,先下 i(insert:插入)或 a(append:附加)指令,則編輯器馬上進入“打字機”模式,即打什麼鍵就出什麼字。

完成一階段的輸入後,按 Esc 進入命令模式(任何時候按 Esc 鍵都是進入命令模式,連按幾次也沒關係)。

最基本的命令模式指令

H(左)、J(下)、K(上)、L(右),可當方向鍵用。

刪除一字用 x

要存檔則打 :w <Enter>,要退出打 :q <Enter>;可一併下 :wq <Enter>,代表存檔退出。

放棄全部編輯結果,打 :q!<Enter>;要回復上一個動作(即 undo),打 u

要在文中搜尋字串,打斜線符號 /字串 <Enter>要繼續向下搜尋同一組字串,按 n, 若搜尋超過會有訊息提示並折回文章的前面繼續搜尋。

 

常用好用的指令

游標直接前往第 105 行,打 105G ,這在編 fortran 程式很有用,因為每當 compiler 偵測到語法錯誤時,會給出錯誤處的行號。

要向下翻一頁,按 Ctrl-f(forward),要向上翻一頁,按 Ctrl-b(backward)

Ctrl-g 可以顯示游標所在的行

 

其他有用的指令(在命令模式下打)

:sh ,在使用 vi 的中途進入一個 UNIX 的 shell 環境,打 exit 返回 vi。

:r 檔名,從外部載入一個檔案的內容到目前的游標位置。

 

進階指令之一例

:g/xxx/s//yyyy/g ,將文件中所有出現 xxx 的地方都改為 yyyy