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 。