命令模式
按「 i, I, o, O, 按「 : 」或
a, A, r, R 」 「 / 」
編輯模式 指令列模式
按「ESC 」
圖一 、 vi 的操作 環境
三、 vi 操作說 明 :
1. 進入 vi 開始編輯:
$vi (編輯未命名新檔)
$vi newfile (開啟名為 newfile 的舊檔,或新編一個名為 newfile 的新檔)
*剛 開啟 vi 時為命 令模式 *
2. 按下『i, I, o, O, a, A, r, R』等字母之後會進入編輯模 式。
3. 編輯完畢按下「ESC」返回命令模 式操作;在命令 模式 中按下「:」或「/」可進入指令列 模式 。
4. 在指令 列模式 中(有「:」提示時),可輸入 w(存檔)、q(離開 vi)、wq(存檔並離開 vi)、q!(不存檔離開
vi)、h 或 help(線上說明)、以及其它搜尋取代的指令。再按「ESC」回到命令 模式 。
5. 練習 A:使用 vi 在~/test/目錄下開一個新檔案 newfile,並輸入2~3行文字後存檔離開。
練習 B:a.使用#man vi | col -b > ~/test/man-vi.txt
b.使用 vi 開啟~/test/man-vi.txt 操作後不存檔 離開。
Page - 1
Edited by bono@teacher.com
Linux 系統管理講義:VI 編輯器
Page - 2
Edited by bono@teacher.com
Linux 系統管理講義:VI 編輯器
*** :w 將編輯的資料寫入硬碟檔案中
*** :w! 若檔案屬性為『唯讀』時,強制寫入該檔案
*** :q 離開 vi(檔案未經修改才能直接離開)
*** :q! 若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。
*** :wq 儲存後離開,若為 :wq! 則為強制儲存後離開
** :e! 將檔案還原到最原始的狀態!
** :w [filename] 將編輯的資料儲存成另一個檔案(類似另存新檔)
** :r [filename] 在編輯的資料中,讀入另一個檔案的資料。亦即將『filename』這個檔案內容加到游
標所在行後面
*** :set nu 顯示行號,設定之後,會在每一行的字首顯示該行的行號
*** :set nonu 與 set nu 相反,為取消行號!(或:set nu!)
** n1,n2 w [filename] 將 n1 到 n2 行的內容儲存成 filename 這個檔案。
*** :sh 暫時離開 vi 到 Shell 下執行指令,執行完畢可打「exit」或按「Ctrl+d」返回 vi
* :! command 暫時離開 vi 到指令列模式下執行 command 的顯示結果!例如[ :! ls /home ]
Page - 3
Edited by bono@teacher.com
Linux 系統管理講義:VI 編輯器
五 、進階 操作 :
1. 自動修復錯誤:可針對自己經常會打錯的字作自動修復。
(在指令列模式中):abbr hte the (hte 為錯字,the 為正確的字)
之後在輸入時如出現打錯字,vi 會自動修正(abbr 實際上是用來設定縮寫字轉換)
2. 分割螢幕在多檔案(或同一檔案)中編輯:(利用「Ctrl+w, ??」組合鍵呼叫)
(在指令列模式中):split (或按「Ctrl+w,s」將目前檔案分割為上下視窗)
分割視窗後可按「Ctrl+w,j」或「Ctrl+w,↓」將游標移至下方視窗;按「Ctrl+w,k」或「Ctrl+w,↑」將游標移至上
方視窗(「Ctrl+w,j」的按法為:先按「Ctrl+w」後放掉再按「j」)
「Ctrl+w,n」:在上方視窗開一個新檔案
「Ctrl+w,q」:關閉游標所在視窗
3. VISUAL mode(標示功能):
v (小寫 v),這是屬於字元標示(character visual),按下 v 後就可以移動游標,游標走過的地方就會
標示起來。再按一次 v 就會結束 v-mode。用 mouse 按兩次左鈕的標示區也是屬於這類的標示。
V (大寫 V),這是列標示(line visual),按下 V 後會整行標示起來(包括行首前空白的部分),移動
上下鍵,會標示多行。mouse 連按三次左鈕,也是屬於此類的標示。再按一次 V 就會結束 v-mode。
Ctrl-v 這是方塊標示(block visual),可縱向標示矩形區域。再按一次 Ctrl-v 就會結束 v-mode。
結束 v-mode 的方式亦可使用 「Esc」 鍵,或統一使用 「Ctl-c」。
d 刪除標示區內容。y 複製標示區內容。p 貼上已複製標示區內容。
4. vi 的加密功能:
vi -x [檔名] :這樣進入 vi 後會要求輸入密碼(兩次)。以後加密過的檔案由 vi 開啟時會自動要求
輸入密碼。否則無法開啟。其它的編輯器當然是無法開啟的。
如果正在 vi 中編輯檔案,臨時想加密,可在指令列模式用 :X 指令。
!! 小心!vim 一開檔就會有個 .檔名.swp 這個檔,是為了緊急回復用的,一般是在您所開檔案的所在目錄,這是個隱藏檔,您加密的
功能並沒有作用在這個 swp 檔,因此 root 還是知道您在寫些什麼關於他的壞話的。:-)當然啦,您也是可以把 swap 的功能關掉的 :set
noswf 就行了!但如果您編輯的是大檔案,則不建議您把 swap 關掉,這樣會很吃記憶體的。
5. 重覆上一個指令:在命令模式下按「.」即可,非常好用哦!
6. 利用 vi 的線上說明文件:在指令列模式下輸入「:h
」、 「:help
」、「 按[F1]鍵」,或「:h <關鍵字 >」,
在瀏覽 Help 時,如果將游標移到「|bars|」字串之間,再按「 Ctrl+] 」可跳到|bars|主題查閱,再按
「Ctrl+t」或「Ctrl+o」返回主 Help 頁面。請多練習操作查閱線上說明,加強自己的操作技術。(線上文件放在
/usr/share/vim 目錄下)
六 、網路 資源 :
1. http://www.newriders.com/books/opl/ebooks/0735710015.html
NewRiders 的線上電子書(非常完整 )
2. http://www.study-area.net/tips/vim/index.html
大家來學 VIM(一個歷久彌新的編輯器)
3. http://linux.vbird.org/linux_basic/0310vi.php
vi 文書處理軟體(鳥哥的 Linux 與 ADSL 私房菜)
--END--
Page - 4
Edited by bono@teacher.com