1. 程式人生 > >Mac終端 vi/vim 的簡單使用

Mac終端 vi/vim 的簡單使用

vi/vim 的使用

基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),插入模式(Insert mode)和底線命令模式(Last line mode)

命令模式:

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

   i  切換到插入模式,以輸入字元。

    x   刪除當前游標所在處的字元。

    :   切換到底線命令模式,以在最底一行輸入命令。

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

輸入模式:

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

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

        ENTER(回車鍵)          換行

        BACK SPACE(退格鍵)    刪除游標前一個字元

        方向鍵               在文字中移動游標

        HOME/END                 移動游標到行首/行尾

        Page Up/Page Down        上/下翻頁

        ESC                        退出輸入模式,切換到命令模式

底線命令模式:

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

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

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

    q   退出程式

    w   儲存檔案

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

vi/vim 使用例項

使用 vi 來建立名為 test.txt 的檔案

    vi test.txt

按下 ESC 按鈕回到一般模式

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

vi/vim 按鍵說明(一般模式下)

    h 或 向左箭頭鍵(←)      游標向左移動一個字元

    j 或 向下箭頭鍵(↓)       游標向下移動一個字元

    k 或 向上箭頭鍵(↑)      游標向上移動一個字元

    l 或 向右箭頭鍵(→)       游標向右移動一個字元

    如果你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一起的,因此可以使用這四個按鈕來移動游標。 如果想要進行多次移動的話,例如向下移動 30 行,可以使用 "30j" 或 "30↓" 的組合按鍵, 亦即加上想要進行的次數(數字)後,按下動作即可!

    Ctrl + f 螢幕『向下』移動一頁,相當於 [Page Down]按鍵

    Ctrl + b 螢幕『向上』移動一頁,相當於 [Page Up] 按鍵

    0 或功能鍵[Home] 這是數字『 0 』:移動到這一行的最前面字元處

    $ 或功能鍵[End] 移動到這一行的最後面字元處

    G 移動到這個檔案的最後一行

    gg 移動到這個檔案的第一行

    n<Enter> n 為數字。游標向下移動 n 行

    /word 向光標之下尋找一個名稱為 word 的字串。例如要在檔案內搜尋 vbird 這個字串,就輸入 /vbird 即可

    n       重複前一個搜尋的動作

    N      『反向』進行前一個搜尋動作

    :n1,n2s/word1/word2/g       n1 與 n2 為數字。在第 n1 與 n2 行之間尋找 word1 這個字串,並將該字串取代為 word2

    :n1,$s/word1/word2/g        從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2

    :n1,$s/word1/word2/gc       從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 !且在取代前顯示提示字元給使用者確認 (confirm) 是否需要取代

    x   向後刪除一個字元

    X   向前刪除一個字元

    dd      刪除遊標所在的那一整行

    ndd     n 為數字。刪除游標所在的向下 n 行(包括遊標所在的那一行)

    yy      複製遊標所在的那一行

    nyy     n 為數字。複製游標所在的向下 n 行

    p       為將已複製的資料在游標下一行貼上

    P       為將已複製的資料在游標上一行貼上

    u             復原前一個動作(撤銷)

    Ctrl + r    重做上一個動作

    .            重複前一個動作

一般模式切換到編輯模式

    i   從目前游標所在處插入

    I   在目前所在行的第一個非空格符處開始插入

    a   從目前游標所在的下一個字元處開始插入

    A   從游標所在行的最後一個字元處開始插入

    o   在目前游標所在的下一行處插入新的一行

    O   在目前游標所在處的上一行插入新的一行

    r   只會取代游標所在的那一個字元一次

    R   會一直取代游標所在的文字,直到按下 ESC 為止

一般模式切換到指令行模式

    :w      將編輯的資料寫入硬碟檔案中

    :w!     強制將編輯的資料寫入硬碟檔案中

    :q      離開

    :q!     為強制離開不儲存檔案

    :wq     儲存後離開

    :wq!    強制儲存後離開

    :set nu       顯示行號,設定之後,會在每一行的字首顯示該行的行號

    :set nonu     取消行號