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 必須原本就存在,否則此命令將無效!
如: 原本的文件:
輸入指令:1, 3 co 3 之後,將會變成
<BackSpace>(在輸入模式下使用)
將游標左邊一個文字刪除
dd
將該行文字刪除
此項指令可與指令 p (貼上)配合使用
而變成是「剪下」的功能
dw
刪除該單字
cc
將該行文字改變
當輸入此指令時,游標所在該行會被刪除,並自動進入「輸入模式」
cw
改變該單字
當輸入此指令時,該單字在游標之後的字元會被刪除,並自動進入「輸入模式」
D
將游標所在該行中右邊的所有文字全部刪除
<ctrl>+w(在輸入模式下)
將游標所在該單字中左邊的所有字元全部刪除
行數1, 行數2 m 行數3
將 行數1 到 行數2 之間所有的字元移動到 行數3
※注意:行數3 必須原本就存在,否則此命令將無效!
如: 原本的文件:
輸入指令:1, 3 m 6 之後,將會變成
行數1, 行數2 d
將 行數1 到 行數2 之間所有的字元刪除
如: 原本的文件:
輸入指令:2, 4 d 之後,將會變成
:g/被替代的字串/s//新字串/g
用「新字串」取代「被替代的字串」
如: 原本的文件:
輸入指令:g/is/s//is not/g 之後,將會變成
§ 存取檔案 & 離開 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 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 即可關閉該視窗。