http://homepage.ttu.edu.tw/u9106240/page_main/vim_menu.html
進入輸入模式
在命令模式下輸入以下指令,程式將會進入輸入(insert)模式
此時使用者便可以修改檔案檔,
若想跳出輸入模式,則鍵入<ESC>即可回到命令模式。
i
在遊標左方進入輸入模式
I
在遊標所在行的行首進入輸入模式
a
在遊標右方進入輸入模式
A
在遊標所在行的行尾進入輸入模式
o(小寫英文字母 o)
在遊標下一行另起新行,並進入輸入模式
O(大寫英文字母 o)
在遊標上一行另起新行,並進入輸入模式
回頂端
§ 移動遊標
k
向上移動遊標一個字元
也就是方向鍵的「↑」
j
向下移動遊標一個字元
也就是方向鍵的「↓」
h
向左移動遊標一個字元
也就是方向鍵的「←」
l
向右移動遊標一個字元
也就是方向鍵的「→」
H
將遊標移至螢幕頂端
M
將遊標移至螢幕中央
L
將遊標移至螢幕底端
:數字
將遊標移至檔案第 數字 行
如輸入 :45,即移動至檔案第 45 行
數字 G
將遊標移至檔案第 數字 行
如輸入 45G,即移動至檔案第 45 行
gg
將遊標移至檔案第一行
G
將遊標移至檔案最後一行
b
移動遊標至該單字的第一個字母
若該處已是該單字第一個字母,則遊標會移至前一個單字的第一個字母
e
移動遊標至該單字的最後一個字母
若該處已是該單字最後一個字母,則遊標會移至下一個單字的最後一個字母
w
移動遊標至下一個單字的第一個字母
^
移動遊標至該行第一個非空白字母
回頂端
§ 捲動視窗
<ctrl>+f
將視窗向下捲動一半
<ctrl>+b
將視窗向上捲動一半
<ctrl>+d
將視窗往下捲動一頁
功能類似鍵盤中的<PageDown>
<ctrl>+u
將視窗往上捲動一頁
功能類似鍵盤中的<PageUp>
回頂端
§ 搜尋文字
/字串
向下搜尋字串
下達此命令之後,若檔案中包含該「字串」,則檔案中所有「字串」的背景顏色會被置換成較鮮明的顏色,在下達完搜尋指令之後,還可以透過「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.
<BackSpace>(在輸入模式下使用)
將遊標左邊一個文字刪除
dd
將該行文字刪除
此項指令可與指令 p (貼上)配合使用
而變成是「剪下」的功能
dw
刪除該單字
cc
將該行文字改變
當輸入此指令時,遊標所在該行會被刪除,並自動進入「輸入模式」
cw
改變該單字
當輸入此指令時,該單字在遊標之後的字元會被刪除,並自動進入「輸入模式」
D
將遊標所在該行中右邊的所有文字全部刪除
<ctrl>+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 便會幫你的程式做自動對齊
<ctrl>+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 [檔案名稱]
水平分割文字編輯視窗
若有指定「檔案名稱」,則新視窗會開啟該檔案; 若沒有指定,則新視窗仍會開啟原檔案。
另外,在編輯視窗中可以利用 <ctrl>+w 配合方向鍵跳躍選取所要編輯的視窗,
若想要關閉視窗,則在欲關閉視窗裡的命令模式下,
打入離開指令,如: :wq 即可關閉該視窗。
:vsplit [檔案名稱]
垂直分割文字編輯視窗
若有指定「檔案名稱」,則新視窗會開啟該檔案; 若沒有指定,則新視窗仍會開啟原檔案。
另外,在編輯視窗中可以利用 <ctrl>+w 配合方向鍵跳躍選取所要編輯的視窗,
若想要關閉視窗,則在欲關閉視窗裡的命令模式下,
打入離開指令,如: :wq 即可關閉該視窗。