1. 程式人生 > >Linux - 編輯模式 (李作強)

Linux - 編輯模式 (李作強)

什麼是 vim?
Vim是從 vi 發展出來的一個文字編輯器。程式碼補完、編譯及錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用。
簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。 vim 則可以說是程式開發者的一項很好用的工具。
連 vim 的官方網站 (http://www.vim.org) 自己也說 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鍵可隨時退出底線命令模式。
簡單的說,我們可以將這三個模式想成底下的圖示來表示:

vi/vim 使用例項
使用 vi/vim 進入一般模式
如果你想要使用 vi 來建立一個名為 test.txt 的檔案時,你可以這樣做:
$ vi runoob.txt
直接輸入 vi 檔名 就能夠進入 vi 的一般模式了。請注意,記得 vi 後面一定要加檔名,不管該檔案存在與否!

按下 i 進入輸入模式(也稱為編輯模式),開始編輯文字
在一般模式之中,只要按下 i, o, a 等字元就可以進入輸入模式了!
在編輯模式當中,你可以發現在左下角狀態列中會出現 –INSERT- 的字樣,那就是可以輸入任意字元的提示。
這個時候,鍵盤上除了 Esc 這個按鍵之外,其他的按鍵都可以視作為一般的輸入按鈕了,所以你可以進行任何的編輯。

按下 ESC 按鈕回到一般模式
好了,假設我已經按照上面的樣式給他編輯完畢了,那麼應該要如何退出呢?是的!沒錯!就是給他按下 Esc 這個按鈕即可!馬上你就會發現畫面左下角的 – INSERT – 不見了!
在一般模式中按下 :wq 儲存後離開 vi
OK,我們要存檔了,存檔並離開的指令很簡單,輸入 :wq 即可儲存離開!

vi/vim 按鍵說明
除了上面簡易範例的 i, Esc, :wq 之外,其實 vim 還有非常多的按鍵可以使用。
第一部份:一般模式可用的游標移動、複製貼上、搜尋替換等
移動游標的方法
h 或 向左箭頭鍵(←) 游標向左移動一個字元
j 或 向下箭頭鍵(↓) 游標向下移動一個字元
k 或 向上箭頭鍵(↑) 游標向上移動一個字元
l 或 向右箭頭鍵(→) 游標向右移動一個字元
如果你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一起的,因此可以使用這四個按鈕來移動游標。 如果想要進行多次移動的話,例如向下移動 30 行,可以使用 “30j” 或 “30↓” 的組合按鍵, 亦即加上想要進行的次數(數字)後,按下動作即可!
[Ctrl] + [f] 螢幕『向下』移動一頁,相當於 [Page Down]按鍵 (常用)
[Ctrl] + [b] 螢幕『向上』移動一頁,相當於 [Page Up] 按鍵 (常用)
[Ctrl] + [d] 螢幕『向下』移動半頁
[Ctrl] + [u] 螢幕『向上』移動半頁
+ 游標移動到非空格符的下一行
- 游標移動到非空格符的上一行
n 那個 n 表示『數字』,例如 20 。按下數字後再按空格鍵,游標會向右移動這一行的 n 個字元。例如 20 則游標會向後面移動 20 個字元距離。
0 或功能鍵[Home] 這是數字『 0 』:移動到這一行的最前面字元處 (常用)