vi vim常用操作
光標移動
命令 | 說明 |
---|---|
w | 移動光標到下一個單詞開頭. |
e | 移動光標到下一個單詞結尾 |
b | 移動光標到上一個單詞. |
0 | 移動光標到本行最開頭. |
^ | 移動光標到本行最開頭的字符處. |
$ | 移動光標到本行結尾處. |
A | 移動光標至行尾并處于“追加”狀態,直接編輯 |
H | 移動光標到屏幕的首行. |
M | 移動光標到屏幕的中間一行. |
L | 移動光標到屏幕的尾行. |
gg | 移動光標到文檔首行. |
G | 移動光標到文檔尾行. |
:n | 跳至第n行 |
ctrl + f | 向下翻頁 同 page down. |
ctrl + b | 向上翻頁 同 page up. |
ctrl + d | 向下翻半頁 此比較有用 |
ctrl + u | 向上翻半頁 此比較有用 |
ctrl + e | 向下翻一行 |
ctrl + y | 向上一行 |
[[ | 轉到上一個位于第一列的“{” |
]] | 轉到下一個位于第一列的“}” |
{ | 轉到上一個空行 |
} | 轉到下一個空行 |
'' | 兩個單引號 此命令相當有用, 它移動光標到上一個標記處, 比如用 gd, * 等查找到某個單詞后, 再輸入此命令則回到上次停留的位置. |
'. | 一單一點 此命令相當好使, 它移動光標到上一次的修改行. |
`. | 一倒引一點 此命令相當強大, 它移動光標到上一次的修改點. |
替換、刪除、復制、粘貼、撤銷、重復
命令 | 說明 |
---|---|
rc | 用 c 替換光標所指向的當前字符; |
nrc | 用 c 替換光標所指向的前 n 個字符; |
5rA | 用 A 替換光標所指向的前 5 個字符; |
x | 刪除光標所指向的當前字符; |
nx | 刪除光標所指向的前 n 個字符; |
3x | 刪除光標所指向的前 3 個字符; |
dw | 刪除光標右側的字; |
ndw | 刪除光標右側的 n 個字; |
3dw | 刪除光標右側的 3 個字; |
db | 刪除光標左側的字; |
ndb | 刪除光標左側的 n 個字; |
5db | 刪除光標左側的 5 個字; |
dd | 刪除光標所在行,并去除空隙; |
ndd | 刪除(剪切) n 行內容,并去除空隙; |
3dd | 刪除(剪切) 3 行內容,并去除空隙; |
d$ | 從當前光標起刪除字符直到行的結束; |
d0 | 從當前光標起刪除字符直到行的開始; |
J | 刪除本行的回車符(CR),并和下一行合并。 |
s | 用輸入的正文替換光標所指向的字符; |
S | 刪除當前行,并進入編輯模式; |
ns | 用輸入的正文替換光標右側 n 個字符; |
nS | 刪除當前行在內的 n 行,并進入編輯模式; |
cw | 用輸入的正文替換光標右側的字; |
cW | 用輸入的正文替換從光標到行尾的所有字符(同 c$ ); |
ncw | 用輸入的正文替換光標右側的 n 個字; |
cb | 用輸入的正文替換光標左側的字; |
ncb | 用輸入的正文替換光標左側的 n 個字; |
cd | 用輸入的正文替換光標的所在行; |
ncd | 用輸入的正文替換光標下面的 n 行; |
c$ | 用輸入的正文替換從光標開始到本行末尾的所有字符; |
c0 | 用輸入的正文替換從本行開頭到光標的所有字符。 |
p | 小寫字母 p,將緩沖區的內容粘貼到光標的后面; |
P | 大寫字母 P,將緩沖區的內容粘貼到光標的前面。 |
yy | 復制當前行到內存緩沖區; |
nyy | 復制 n 行內容到內存緩沖區; |
5yy | 復制 5 行內容到內存緩沖區; |
“+y | 復制 1 行到操作系統的粘貼板; |
“+nyy | 復制 n 行到操作系統的粘貼板。 |
u | 撤消前一條命令的結果; |
. | 重復最后一條修改正文的命令。 |
插入模式
命令 | 說明 |
---|---|
i | 在光標左側插入正文 |
a | 在光標右側插入正文 |
o | 在光標所在行的下一行增添新行 |
O | 在光標所在行的上一行增添新行 |
I | 在光標所在行的開頭插入 |
A | 在光標所在行的末尾插入 |
保存,退出,環境變量
命令 | 說明 |
---|---|
:w | 將編輯的數據寫入硬盤檔案中(常用) |
:w! | 若文件屬性為『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案權限有關 |
:q | 離開 vi (常用) |
:q! | 若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。 |
:wq | 儲存后離開 |
:wq! | 強制儲存后離開 |
ZZ | 若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存后離開! |
:w [filename] | 另存為 |
:r [filename] | 在編輯的數據中,讀入另一個檔案的數據。亦即將 『filename』 這個檔案內容加到光標所在行后面 |
:! command | 暫時離開 vi 到指令列模式下執行 command 的顯示結果!例如 『:! cat ./test』即可在 vi 當中察看當前文件夾中的test文件中的內容 |
Esc | 退出插入模式,進入命令模式 |
:set nu | 顯示行號,設定之后,會在每一行的前綴顯示該行的行號,這一點,非常有用,當我們修改配置文件的時候,能知道多少行,就方便多了。 |
:set nonu | 與 set nu 相反,取消行號 |