① 什麼叫VI
Vi 是Unix世界裡極為普遍的全屏幕文本編輯器,VIM是它的改進版本Vi IMproved的簡稱。幾乎可以說任何一台Unix機器都會提供這套軟體。Linux當然也有,它的 vi 其實是 elvis(版權問題),不過它們都差不多。熟悉 DOS 下的文書處理後,也許會感到 vi 並不好用;Unix 上也已經發展出許多更新、更好用的文書編輯器,但是並不一定每一台Unix機器上都會安裝這些額外的軟體。所以,學習 vi 的基本操作還是有好處,讓你在各個不同的機器上得心應手。
Vi 基本觀念
Unix 提供一系列的 ex 編輯器,包括 ex, edit 和 vi 。相對於全屏幕編輯器,現在可能很難想像如何使用 ex, edit 這種行列編輯器。 Vi 的原意是 "Visual",它是一個立即反應的編輯程序,也就是說可以立刻看到操作結果。
也由於 vi 是全屏幕編輯器,所以它必須控制整個終端屏幕哪裡該顯示些什麼。而終端機的種類有許多種,特性又不盡相同,所以 vi 有必要知道現在所使用的是哪一種終端機。這是由 TERM 這個環境變數來設定,設定環境變數方面請查看所使用shell的說明。
只要簡單的在Shell下執行vi就可以進入 vi 的編輯環境。在實際操作之前先對它有個了解會比較好。Vi 有兩種模式,輸入模式以及指令模式。輸入模式即是用來輸入文字資料,而指令模式則是用來下達一些編排文件、存檔、以及離開 vi 等等的操作指令。當執行 vi 後,會先進入指令模式,此時輸入的任何字元都視為指令。對於vi的詳細操作,可參考相關的Unix教程。
vi歷史
1. vi的誕生
vi是Bill Joy所寫,當時這位大牛還在Berkeley。Ken Thompson去Berkeley的時候帶去了他那不完整的Pascal系統,而Bill Joy恰好在暑假就接到修復它的工作,他就修復代碼時使用的編輯器ed很不滿意。正好,他們從一個叫George Coulouris的傢伙那裡拿到了em的代碼,em比ed要好用。他們就修改了em,發明了en,而最終又變成了ex(連Bill Joy本人也不知道怎麼就變成了ex)。後來他熬了幾個月的夜就寫出了vi。
2. vi並不是一個周末就寫出來的。
Bill Joy自己也宣稱花了很多時間,不過似乎不是因為它有多難寫,而是因為Bill的modem很慢,只有300波特。