vi 及 vim 指令


§ 進入輸入模式
    在命令模式下輸入以下指令,程式將會進入輸入(insert)模式

    此時使用者便可以修改文件檔,

    若想跳出輸入模式,則鍵入即可回到命令模式。

    i ( 在游標左方進入輸入模式 )

    在游標所在行的行首進入輸入模式
    a ( 在游標右方進入輸入模式 )

    A ( 在游標所在行的行尾進入輸入模式 )

    o(小寫英文字母 o)

    在游標下一行另起新行,並進入輸入模式

    O( 大寫英文字母 o )

    在游標上一行另起新行,並進入輸入模式

    § 移動游標

    k ( 向上移動游標一個字元 )

    也就是方向鍵的「↑」

    j ( 向下移動游標一個字元 )

    也就是方向鍵的「↓」

    h ( 向左移動游標一個字元 )

    也就是方向鍵的「←」

    l ( 向右移動游標一個字元 )

    也就是方向鍵的「→」

    H ( 將游標移至螢幕頂端 )

    M ( 將游標移至螢幕中央 )

    L ( 將游標移至螢幕底端 )

    :數字

    將游標移至檔案第 數字 行

    如輸入 :45,即移動至檔案第 45 行

    數字 G

    將游標移至檔案第 數字 行

    如輸入 45G,即移動至檔案第 45 行

    gg

    將游標移至檔案第一行

    G

    將游標移至檔案最後一行

    b

    移動游標至該單字的第一個字母

    若該處已是該單字第一個字母,則游標會移至前一個單字的第一個字母

    e

    移動游標至該單字的最後一個字母

    若該處已是該單字最後一個字母,則游標會移至下一個單字的最後一個字母

    w

    移動游標至下一個單字的第一個字母

    ^

    移動游標至該行第一個非空白字母

    § 捲動視窗

    +f

    將視窗向下捲動一半

    +b

    將視窗向上捲動一半

    +d

    將視窗往下捲動一頁

    功能類似鍵盤中的

    +u

    將視窗往上捲動一頁

    功能類似鍵盤中的

    § 搜尋文字

    /字串

    向下搜尋字串

    下達此命令之後,若文件中包含該「字串」,則文件中所有「字串」的背景顏色會被置換成較鮮明的顏色,在下達完搜尋指令之後,還可以透過「n」和「N」指令作進一步控制。

    ◎ n 跳到下一個「字串」所在地

    ◎ N 跳到上一個「字串」所在地

    另外,把游標停在想要搜尋的字串上,按下「*」也可以達到向下搜尋的效果。

    ?字串

    向上搜尋字串

    下達此命令之後,若文件中包含該「字串」,則文件中所有「字串」的背景顏色會被置換成較鮮明的顏色,在下達完搜尋指令之後,還可以透過「n」和「N」指令作進一步控制。

    ◎ n 跳到上一個「字串」所在地

    ◎ N 跳到下一個「字串」所在地

    另外,把游標停在想要搜尋的字串上,按下「#」也可以達到向上搜尋的效果。

    § 複製、移動、刪除文字

    yy

    將該行文字複製

    指令 Y 有相同的功能

    p

    將所剪下或複製的文字貼上

    行數1, 行數2 co 行數3

    將 行數1 到 行數2 之間所有的字元複製至 行數3

    ※注意:行數3 必須原本就存在,否則此命令將無效!

    如: 原本的文件:

    This is line 1.

    This is line 2.

    This is line 3.

    輸入指令:1, 3 co 3 之後,將會變成

    This is line 1.

    This is line 2.

    This is line 3.

    This is line 1.

    This is line 2.

    This is line 3.

    (在輸入模式下使用)

    將游標左邊一個文字刪除

    dd

    將該行文字刪除

    此項指令可與指令 p (貼上)配合使用

    而變成是「剪下」的功能

    dw

    刪除該單字

    cc

    將該行文字改變

    當輸入此指令時,游標所在該行會被刪除,並自動進入「輸入模式」

    cw

    改變該單字

    當輸入此指令時,該單字在游標之後的字元會被刪除,並自動進入「輸入模式」

    D

    將游標所在該行中右邊的所有文字全部刪除

    +w(在輸入模式下)

    將游標所在該單字中左邊的所有字元全部刪除

    行數1, 行數2 m 行數3

    將 行數1 到 行數2 之間所有的字元移動到 行數3

    ※注意:行數3 必須原本就存在,否則此命令將無效!

    如: 原本的文件:

    This is line 1.

    This is line 2.

    This is line 3.

    This is line 4.

    This is line 5.

    This is line 6.

    輸入指令:1, 3 m 6 之後,將會變成

    This is line 4.

    This is line 5.

    This is line 6.

    This is line 1.

    This is line 2.

    This is line 3.

    行數1, 行數2 d

    將 行數1 到 行數2 之間所有的字元刪除

    如: 原本的文件:

    This is line 1.

    This is line 2.

    This is line 3.

    This is line 4.

    This is line 5.

    This is line 6.


    輸入指令:2, 4 d 之後,將會變成

    This is line 1.

    This is line 5.

    This is line 6.

    :g/被替代的字串/s//新字串/g

    用「新字串」取代「被替代的字串」

    如: 原本的文件:

    That is line 1.

    That is line 2.

    That is line 3.

    That is line 4.

    That is line 5.

    That is line 6.


    輸入指令:g/is/s//is not/g 之後,將會變成

    That is not line 1.

    That is not line 2.

    That is not line 3.

    That is not line 4.

    That is not line 5.

    That is not line 6.

    § 存取檔案 & 離開 VI 程式

    :q

    不儲存修改地離開 VI 程式

    若是沒有對文件做任何修改,使用 :q 即可跳出,

    但若修改過文件內容則必須使用 :q! 指令才能成功地不儲存離開。

    :q!

    不儲存修改地離開 VI 程式

    :w

    儲存目前所編輯的文件

    :w 檔案名稱

    將目前所編輯的文件另存新檔至「檔案名稱」

    :wq

    儲存目前所編輯的文件,並離開 VI 程式

    :x

    儲存目前所編輯的文件,並離開 VI 程式

    功能與 :wq 相同。

    § 其他指令

    u

    動作還原

    若不小心下錯指令,可以利用這個指令還原。

    K

    函式查詢

    若您在 VIM 中撰寫 C/C++ 程式,可以在 C/C++ 標準函式厙提供的函式名字上按「K」,便可以呼叫出 man page 查詢該函式的用法

    =

    自動程式縮排對齊

    若您在 VIM 中撰寫 C/C++ 程式,可以利用「gg」指令將游標移到視窗最上方、利用「v」切換到選取模式、再用「G」將游標移到檔案尾端 (即達到全選的功能),最後按「=」,VIM 便會幫你的程式做自動對齊

    +r

    動作重做

    若不小心還原錯了,可以利用這個指令重做。

    :set all

    顯示所有參數

    可透過此指令查詢 VIM 支援的所有參數。

    若在執行 VIM 程式期間,透過「:set 參數」的方式來設定參數,在每次開啟 VIM 程式時都必須再重新設定一次,若想要讓 VIM 在每次啟動時,都能夠自動載入使用者的設定,則可以在使用者的家目錄下,建立一個名為 「.vimrc」的檔案來存放個人 VIM 的設定。

    如:建立一個檔案「vi /home/kevin/.vimrc」,檔案內容為:

    set background=dark

    set autoindent

    set number

    此設定中,第一行代表設定字體顏色為適用黑色背景之顏色,第二行表示開啟自動縮排功能,第三行表示開啟顯示行號功能

    :set nu

    顯示行數

    若想知道文件的行數,可下達這項指令。

    :set nonu

    隱藏行數

    若想隱藏文件的行數,可下達這項指令。

    :set autoindent

    自動縮排功能

    開啟此功能之後,按下 enter 鍵所產生的新行,會複製前一行最前方的 tab 和 space 數量,以達到對齊的目的。此功能可透過「:set noautoindent」關閉

    :set tabstop=數字

    設定 tab 對齊的字元數

    一般 VIM 設定中,tabstop 的預設值為 8,但在 windows 下,許多文字編輯軟體的預設 tabstop 數為 4,若想要把 VIM 的 tab 對齊字元數變更為 4,可以在 VIM 的命令模式下,下達 「:set tabstop=4」指令

    :set background=模式

    設定 keyword 字體顏色模式

    使用「:set background=dark」指令可以讓 VIM 中的 keyword 以較亮眼的顏色表現出來,適用於暗色系的背景。使用「:set background=light」指令可以讓 VIM 中的 keyword 以較暗沉的顏色表現出來,適用於亮色系的背景。

    :split [檔案名稱]

    水平分割文字編輯視窗

    若有指定「檔案名稱」,則新視窗會開啟該檔案; 若沒有指定,則新視窗仍會開啟原檔案。

    另外,在編輯視窗中可以利用 +w 配合方向鍵跳躍選取所要編輯的視窗,

    若想要關閉視窗,則在欲關閉視窗裡的命令模式下,

    打入離開指令,如: :wq 即可關閉該視窗。

    :vsplit [檔案名稱]

    垂直分割文字編輯視窗

    若有指定「檔案名稱」,則新視窗會開啟該檔案; 若沒有指定,則新視窗仍會開啟原檔案。

    另外,在編輯視窗中可以利用 +w 配合方向鍵跳躍選取所要編輯的視窗,

    若想要關閉視窗,則在欲關閉視窗裡的命令模式下,

    打入離開指令,如: :wq 即可關閉該視窗。

    留言

    這個網誌中的熱門文章

    c語言-關於#define用法

    PHP教學 - 資料型態(Data Type) - 上

    CMD常用網管指令