Linux vi

所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在。

但是目前我們使用比較多的是 vim 編輯器。

vim 具有程序編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程序設計。

相關文章:史上最全Vim快捷鍵鍵位圖 — 入門到進階


什麼是 vim?

Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。

簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。 vim 則可以說是程序開發者的一項很好用的工具。

連 vim 的官方網站 (http://www.vim.org) 自己也說 vim 是一個程序開發工具而不是文字處理軟件。

vim 鍵盤圖:

Linux vi/vim?


vi/vim 的使用

基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode)輸入模式(Insert mode)底線命令模式(Last line mode)。 這三種模式的作用分別是:

命令模式:

用戶剛剛啟動 vi/vim,便進入了命令模式。

此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下i,並不會輸入一個字符,i被當作了一個命令。

以下是常用的幾個命令:

  • i 切換到輸入模式,以輸入字符。
  • x 刪除當前光標所在處的字符。
  • :
    切換到底線命令模式,以在最底一行輸入命令。

若想要編輯文本:啟動Vim,進入了命令模式,按下i,切換到輸入模式。

命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。

輸入模式

在命令模式下按下i就進入了輸入模式。

在輸入模式中,可以使用以下按鍵:

  • 字符按鍵以及Shift組合,輸入字符
  • ENTER,回車鍵,換行
  • BACK SPACE,退格鍵,刪除光標前一個字符
  • DEL,刪除鍵,刪除光標後一個字符
  • 方向鍵,在文本中移動光標
  • HOME/END,移動光標到行首/行尾
  • Page Up/Page Down,上/下翻頁
  • Insert,切換光標為輸入/替換模式,光標將變成豎線/下劃線
  • ESC,退出輸入模式,切換到命令模式

底線命令模式

在命令模式下按下:(英文冒號)就進入了底線命令模式。

底線命令模式可以輸入單個或多個字符的命令,可用的命令非常多。

在底線命令模式中,基本的命令有(已經省略了冒號):

  • q 退出程序
  • w 保存文件

按ESC鍵可隨時退出底線命令模式。

簡單的說,我們可以將這三個模式想成底下的圖標來表示:

Linux vi/vim?


vi/vim 使用實例

使用 vi/vim 進入一般模式

如果你想要使用 vi 來建立一個名為 test.txt 的文件時,你可以這樣做:

$ vi runoob.txt

直接輸入 vi 文件名 就能夠進入 vi 的一般模式了。請注意,記得 vi 後面一定要加文件名,不管該文件存在與否!

Linux vi/vim?

按下 i 進入輸入模式(也稱為編輯模式),開始編輯文字

在一般模式之中,只要按下 i, o, a 等字符就可以進入輸入模式了!

在編輯模式當中,你可以發現在左下角狀態欄中會出現 –INSERT- 的字樣,那就是可以輸入任意字符的提示。

這個時候,鍵盤上除了 Esc 這個按鍵之外,其他的按鍵都可以視作為一般的輸入按鈕了,所以你可以進行任何的編輯。

Linux vi/vim?

按下 ESC 按鈕回到一般模式

好了,假設我已經按照上面的樣式給他編輯完畢了,那麼應該要如何退出呢?是的!沒錯!就是給他按下 Esc 這個按鈕即可!馬上你就會發現畫面左下角的 – INSERT – 不見了!

在一般模式中按下 :wq 儲存後離開 vi

OK,我們要存檔了,存盤並離開的指令很簡單,輸入 :wq 即可保存離開!

Linux vi/vim?

OK! 這樣我們就成功創建了一個 runoob.txt 的文件。


vi/vim 按鍵說明

除了上面簡易範例的 i, Esc, :wq 之外,其實 vim 還有非常多的按鍵可以使用。

第一部份:一般模式可用的光標移動、複製粘貼、搜索替換等

Linux vi/vim?

第二部份:一般模式切換到編輯模式的可用的按鈕說明

Linux vi/vim?

第三部份:一般模式切換到指令行模式的可用的按鈕說明

Linux vi/vim?

Linux vi/vim?

指令行的儲存、離開等指令:

w將編輯的數據寫入硬盤檔案中(常用)

:w!若文件屬性為『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案權限有關啊!

:q離開 vi (常用)

:q!若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。注意一下啊,那個驚歎號 (!) 在 vi 當中,常常具有『強制』的意思~

:wq儲存後離開;

若為 :wq! 則為強制儲存後離開 (常用)ZZ這是大寫的 Z 喔!若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存後離開!

:w [filename]將編輯的數據儲存成另一個檔案(類似另存新檔):r [filename]在編輯的數據中,讀入另一個檔案的數據。亦即將 『filename』 這個檔案內容加到遊標所在行後面:n1,n2 w [filename]將 n1 到 n2 的內容儲存成 filename 這個檔案。:! command暫時離開 vi 到指令行模式下執行 command 的顯示結果!例如

『:! ls /home』即可在 vi 當中察看 /home 底下以 ls 輸出的檔案信息!vim 環境的變更:set nu顯示行號,設定之後,會在每一行的前綴顯示該行的行號:set nonu與 set nu 相反,為取消行號!

特別注意,在 vi/vim 中,數字是很有意義的!數字通常代表重複做幾次的意思! 也有可能是代表去到第幾個什麼什麼的意思。

舉例來說,要刪除 50 行,則是用 『50dd』 對吧! 數字加在動作之前,如我要向下移動 20 行呢?那就是『20j』或者是『20↓』即可。


分享到:


相關文章: