160 likes | 268 Views
使用 vi 編輯器. 一定要會的文字編輯器. vi 的執行與離開. [root@localhost ~]# vi ~ ~
E N D
使用 vi 編輯器 一定要會的文字編輯器
vi的執行與離開 [root@localhost ~]# vi ~ ~ ~ VIM - Vi IMproved ~ ~ 版本 7.1.135 ~ 維護者: Bram Moolenaar et al. ~ 修改者為<bugzilla@redhat.com> ~ Vim 為可自由散佈的開放原始碼軟體 ~ ~ 請幫助烏干達的可憐孩童! ~ 進一步說明請輸入 :help iccf<Enter> ~ ~ 要離開請輸入 :q<Enter> ~ 線上說明請輸入 :help<Enter> ~ type :help version7<Enter> for version info ~ ~ ~ ~ ~ 0,0-1 全部
vi 操作模式 • Command Mode 命令模式 • Insert Mode 輸入文字的模式 • Last Line Mode 開啟檔案、寫出檔案、搜尋替換、… • 在 vi 之前,ed 為主要的編輯器,在沒有全螢幕功能時,以 ed 編輯文件可能是系統管理員唯一的選擇。 • sed 也是從 ed 演變而來,應用於 Shell Script 之中處理串流中的文字編輯(搜尋與替換)
開啟檔案 • 以 vi test.txt 即可開啟 test.txt 進行編輯 • 也可以先執行 vi 然後再 last line mode 輸入: e test.txt • 如果 test.txt 不存在,則會建立新檔案
「Command Mode」可用指令 • i 插入(Insert) • 由目前的游標位置輸入文字 • a 增加(Append) • 由目前游標的下一個位置輸入文字 • o 插入新行 • 加入新行並且由行首開始輸入文字
Command Mode功能鍵 • 移動游標 • 複製文字 • 刪除文字 • 其他用法
移動游標 • h或←:游標左移一格 • j或↓:游標下移一格 • k或↑:游標上移一格 • l或→:游標右移一格 • Ctrl+B:向後捲動一個螢幕 • Ctrl+F:向前捲動一個螢幕 • Ctrl+U:向後捲動半個螢幕 • Ctrl+D:向前捲動半個螢幕 • Ctrl+E:向後捲動一行 • Ctrl+Y:向前捲動一行 • 數字0:游標移至該行的行首 • G:游標移至最後一行的行首 • W或w:游標移至下個字的字首
移動游標 • e:游標移至下個字的字尾 • b:游標移至上個字的字首 • $:游標移至該行的行尾 • 數字+|:游標移至該行指定的字元,例如「7|」表示將游標移至該行的第7個字元。 • {:游標向前移動一個段落 • }:游標向後移動一個段落 • H:移至螢幕頂端 • M:移至螢幕中間 • L:移至螢幕底部 • o:在游標下面插入一行 • O:在游標上面插入一行 • ~:改變字母大小寫
複製文字 • y+y:連續按二次y鍵,可將游標所在位置的整行複製,但注意一點,複製後的部份並不會反白。 • y+w:連續按y及w鍵,可將游標所在位置的整個單字複製。 • 數字+y+w:數字表示要複製的單字數目,例如「5+y+w」可以將目前游標所在位置,以及其後的2個字一起複製。 • 數字+y+y:數字表示要複製的行數,例如「5+y+y」可以將目前游標所在位置,以及其後的2行一起複製。 • p:將複製的字串貼在目前游標的所在位置,若複製為整行的文字,則會貼在游標所在位置的下一行。
刪除文字 • d+←:可將游標所在位置的前一個字元刪除 • d+→:可將游標所在位置的字元刪除 • d+↑:可將游標所在位置的行與上一行同時刪除 • d+↓:可將游標所在位置的行與下一行同時刪除 d+d:連按二次d鍵可以刪除游標所在的那一行,若要連續刪除數行,可以按住d鍵,直到全數刪除為止。 • d+w:刪除游標所在位置的字(Word),若是游標在二個字之間,則刪除游標後面的一個字元(不是一個字)。 • 數字+d+↑:數字+d是用來標示欲刪除的範圍(但是標示的範圍不會反白),例如2d,在按下↑鍵後,即可以刪除游標所在的行及上方2行(總共3行)的文字。
刪除文字 • 數字+d+↓:數字+d是用來標示欲刪除的範圍,例如2d,在按下↓鍵後,即可以刪除游標所在的行及下方2行(總共3行)的文字。 • 數字+d+d:例如3dd是表示刪除游標所在的行及下方2行的文字 • D:可刪除同一行中,游標所在位置之後的所有字元。 • x:刪除游標所在位置的字元 • X:與d+←同,它可刪除游標所在位置的前一個字元。 • 數字+x:例如3x是表示刪除游標所在位置及後方2個字元 • 數字+X:例如3X是表示刪除游標所在位置前的3個字元
其他用法 • Ctrl+g或Ctrl+G:在視窗的最後一行顯示內容的總行數,以及目前所在的行數,例如「line 14 of 522 --2%-- col 1」。 • 數字+G:可以跳到指定的行數,例如10G。 • r:表示取代(Replace)要取代某個位置的字元,您可以先按r鍵,然後再輸入欲取代的字元。 • R:R鍵的取代功能比r鍵強,若是先按R鍵後,可以一直取代字元,直到您按 鍵才停止。
其他用法 • u:表示復原(Undo)的功能 • U:取消對行所作的所有改變 • .:重複執行上一個指令 • Z+Z:連續按二次Z鍵可以將目前編輯的內容加以儲存,並且結束vi。 • %:這個一個程式人員在撰寫程式時的利器,因為有時我們會遺漏了某個右括號或左括號,若要檢查這個錯誤,您可以將游標停留在某個右括號或左括號,然後按%鍵,vi即會找出其相對應的左括號或右括號。 • c+數字+w:刪除指定數目的字(不是字元),例如c5w表示刪除游標所在位置及其後4個字。
Last Line Mode功能鍵 • e+檔名:e是表示編輯(edit)的意思,若要在vi中建立一個新檔案,您可以使用這個指令,例如「:e test」指令會在目前的目錄中建立名為test的檔案。 • n+檔名:使用這個指令可以載入另一個檔案,例如「:n test」指令會在目前的vi視窗中,載入名為test的檔案。 • w:w是表示寫入(write)的意思,也就是將目前的檔案內容加以儲存,如果這是一個新檔案,您必須要指定檔名,如「:w test」。 • ?字串:您也可以利用「?字串」的指令來尋找特定字,例如「:/tcp」,如果搜尋的字串不是您要的,可以按「n」鍵來往上繼續尋找。 • 指令:說明
Last Line Mode功能鍵 • q:q(quit)表示離開vi的執行,但若是檔案內容有修改,vi會出現錯誤訊息「No write since last change(use ! to override)」,並要求您使用「!」。 • q!:強制離開vi,並且不存檔。 • wq:將修改過的內容存檔,並且離開vi。 • set nu:在檔案中的每行行首加入行號 • set nonu:取消行號 • 輸入數字:如果直接輸入數字再按 鍵,就可將游標移至該行的行首。 • /字串:在很長的檔案中,您可以利用「/字串」的指令來尋找特定字,例如「:/tcp」,如果搜尋的字串不是您要的,您可以按「n」鍵來往下繼續尋找。