前言
用了幾年vim,但是有些命令少用後便會忘記,時常需要百度,乾脆在這裡累積,方便直接查詢。
使用utools輔助。
便捷唯快不破。
下面鍵入的命令在實際使用時混合搭配使用,慢慢摸索即可。
原文:李柱明部落格
vim簡要知識
vim鍵盤簡圖
該圖源自百度,很久前的筆記了,沒有追查
vim模式
- 普通模式:Vim 啟動後的預設模式,用來移動游標、刪除文字、覆蓋輸入文字、恢復操作、貼上文字等等。
- 插入模式:輸入
i
或a
或o
進入插入模式,在這個模式下敲擊鍵盤會往文字緩衝區增加文字,相當於普通編輯器的編輯模式。 - 可視模式:選擇文字,可以行選、塊選和依次選擇,選擇後可以進行復制、刪除、排序等操作。
- 命令模式:執行內部和外部命令,透過
:
、/
、?
、:!
可以進入命令模式,分別對應的是:執行內部命令、向上或向下搜尋、執行外部命令。
vim日常操作
以下描述,預設情況都是在普通模式下的鍵入。
只描述本人日常使用的,一切少用和不常見的可以參考上圖或百度。
游標移動
上下左右:
普通模式和可視模式下,使用h
(←)、j
(↓)、k
(↑)、i
(→)實現。
如果需要在插入模式下實現游標移動,可以在vimrc檔案配置上新增以下配置熱鍵對映(入門的同學忽略這個)
- 個人習慣鍵盤預設的上下左右鍵。
單詞方式移動游標(不區分大小寫):
b
/B
:前一個單詞詞首。e
/E
:下一個單詞詞尾。w
/W
:下一個單詞詞首。
行指定字元:
f
x:搜尋游標後字元x並跳轉。F
x:搜尋游標前字元x並跳轉。
行首行尾:
home
和end
鍵:行首尾。雖然不屬於vim範疇,但是作者也經常使用。特別是搭配shift
鍵用來選中文字。^
和$
,也是行首尾。|
(是shift
+\
得出的,不是英文字母I
):行首。
句和段:
(
和)
:上一句和下一句。{
和}
:上一段和下一段。
檔案某個位置:
gg
:檔案頭。G
:檔案末。- n
gg
:跳轉到第n行,n為數字。
跳到函式首尾:
[
和]
都是以每個函式的首尾括號為基準。
相同方向跳到函式左括號(開頭)。
相反方向跳到函式右括號(尾部)。
第一個方向決定前後,第二個方向決定首尾。
前面還可以新增數字n,表示n個。
n不填時預設為1。
n[[
:前n個 前:(
。
n[]
:前n個 後:)
。
n]]
:後n個 前:(
。
n][
:後n個 後:)
。
ctrl+T
:回到上一個游標位置。
螢幕移動
主要是瀏覽程式碼時使用。
翻頁:
ctrl
+b
:上一頁。(Backward)ctrl
+f
:下一頁。(Forward)ctrl
+u
:上半一頁。(up)ctrl
+d
:下半一頁。(down)
當前屏游標位置:
H
:當前屏頂。(High)M
:當前屏中。(Middle)L
:當前屏底。(Low)
游標滾屏:
zt
:游標程式碼滾到屏頂。(top)zz
:游標程式碼滾到屏中。zb
:游標程式碼滾到屏底。ctrl
+e
:前滾一行。ctrl
+y
:後滾一行。
文字修改
進入插入模式:
i
:在游標所在位置插入。I
:在行首插入。a
:在在游標後插入。A
:在行尾插入。o
:在游標所在位置的下一行插入。O
:在游標所在位置的上一行插入。
刪除:
x
:刪除字元。
x
:刪除當前字元。- n
x
:刪除包括當前字元後的n個字元。 X
:刪除游標前一個字元。- n
X
:刪除當前游標前的n個字元。
d
:需要配合使用。
-
dd
:刪除整行。 -
n
dd
:刪除n行。 -
因為
d
是刪除操作,需要搭配其它鍵使用,其刪除就是刪除到後面鍵入命令後游標的位置如:df
x:從游標起刪除到本行後面第一個字元x的位置。diw
:刪除游標所在單詞。- 還有
dw
、db
、d end鍵
等等都可以自由發揮。
di
x和da
x的使用,是刪除x內部和刪除包括x的內部:
di}
:就是刪除游標所在的{}
內部所有內容。da}
:相對di}
,da}
把{}
也刪除。- 其x可以搭配:
w
、s
、p
、"
、}
、]
等等輔助字元,實際用到時再瞭解。
dw
刪除一個單詞示例:
di)
刪除()內容示例:
df(
刪除到( :
複製貼上
y
:複製。
- 搭配
v
鍵入可視模式後選中文字,鍵入y
就是複製選中的文字了。 yy
:複製當前行。- n
yy
:當前行起,複製n行。 y
搭配貫標移動指令進行復制。y
搭配w
、s
、p
、"
、}
、]
等等輔助字元使用。- 注意:前面的刪除是刪除後帶賦值作用的。
p
:貼上。
yi{
複製p
貼上{}
內容示例:
撤銷:
u
:撤銷上一個操作。
vim可視模式
v
v
:進入可視模式。即是選中文字。
搭配游標移動使用,這個比較簡單。
高階點的就是搭配w
、s
、p
、"
、}
、]
等等輔助字元使用。
再搭配y
、d
這些指令使用。實現複製、刪除功能。
ctrl+v
- ctrl+v:進入可視模式
- ctrl+v+%:選中大括號
- ctrl+v+I:行列插入
配合游標移動相關命令使用。如在多行尾部修改:
重複技巧
Vim 對很多簡單操作已經定義了重複鍵:
;
:重複最近的字元查詢(f、t等)操作。,
:重複最近的字元查詢操作,反方向。n
:重複最近的字串查詢操作(/和?)。(vscode中直接/
進入命令搜尋字串)N
:重複最近的字串查詢操作(/和?),反方向。(vscode中直接/
進入命令搜尋字串).
:重複執行最近的修改操作。
多視窗
多個視窗操作同一個檔案。
:sp
:水平分屏。(split)
:vs
:垂直分屏。(vsplit)
注意,部分功能渲染在vscode可能失效,練習的同學轉linux下的vim。
操作下面處理前先鍵入ctrl
+w
:
主要:
- 加方向鍵(h、j、k、l、
等等)可以在視窗之間跳轉 w
:跳轉到下一個(往右和往下)視窗,如果已經是右下角的視窗,則跳轉到左上角的視窗W
:跳轉到上一個(往左和往上)視窗,如果已經是左上角的視窗,則跳轉到右下角的視窗n
或:new
:開啟一個新視窗c
或:close
:關閉當前視窗;當前視窗如果已經是最後一個則無效q
或:quit
:退出當前視窗,當最後一個視窗退出時則退出 Vimo
或:only
:只保留當前視窗,關閉其他所有視窗s
和:split
:作用相同,把當前視窗橫向一分為二v
和:vsplit
:作用相同,把當前視窗縱向一分為二=
:使得所有視窗大小相同(當調整過終端或圖形介面 Vim 的視窗大小後特別有用)
瞭解:
_
:設定視窗高度,命令前的數字表示高度行數,預設為縱向佔滿(想專心編輯某個檔案時很有用)|
:設定視窗寬度,命令前的數字表示寬度列數,預設為橫向佔滿+
:增加視窗的高度,命令前的數字表示需要增加的行數,預設為 1-
:減少視窗的高度,命令前的數字表示需要減少的行數,預設為 1>
:增加視窗的寬度,命令前的數字表示需要增加的列數,預設為 1- <
lt
>(提醒,我們用表示“<”鍵)減少視窗的寬度,命令前的數字表示需要增加的列數,預設為 1。
簡單示例:
更便捷
自己定製鍵入。