用了幾年vim,但是有些命令少用後便會忘記,時常需要百度,乾脆在這裡累積,方便直接查詢。
使用utools輔助。
便捷唯快不破。
下面鍵入的命令在實際使用時混合搭配使用,慢慢摸索即可。
原文:李柱明部落格
該圖源自百度,很久前的筆記了,沒有追查
i
或 a
或 o
進入插入模式,在這個模式下敲擊鍵盤會往文字緩衝區增加文字,相當於普通編輯器的編輯模式。:
、/
、?
、:!
可以進入命令模式,分別對應的是:執行內部命令、向上或向下搜尋、執行外部命令。以下描述,預設情況都是在普通模式下的鍵入。
只描述本人日常使用的,一切少用和不常見的可以參考上圖或百度。
普通模式和可視模式下,使用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
:檔案末。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
:刪除當前字元。x
:刪除包括當前字元后的n個字元。X
:刪除遊標前一個字元。X
:刪除當前遊標前的n個字元。d
:需要配合使用。
dd
:刪除整行。
ndd
:刪除n行。
因為d
是刪除操作,需要搭配其它鍵使用,其刪除就是刪除到後面鍵入命令後遊標的位置如:
df
x:從遊標起刪除到本行後面第一個字元x的位置。diw
:刪除遊標所在單詞。dw
、db
、d end鍵
等等都可以自由發揮。di
x和da
x的使用,是刪除x內部和刪除包括x的內部:
di}
:就是刪除遊標所在的{}
內部所有內容。da}
:相對di}
,da}
把{}
也刪除。w
、s
、p
、"
、}
、]
等等輔助字元,實際用到時再瞭解。dw
刪除一個單詞範例:
di)
刪除()內容範例:
df(
刪除到( :
y
:複製。
v
鍵入可視模式後選中文字,鍵入y
就是複製選中的文字了。yy
:複製當前行。yy
:當前行起,複製n行。y
搭配貫標移動指令進行復制。y
搭配w
、s
、p
、"
、}
、]
等等輔助字元使用。p
:貼上。
yi{
複製p
貼上{}
內容範例:
u
:復原上一個操作。v
:進入可視模式。即是選中文字。
搭配遊標移動使用,這個比較簡單。
高階點的就是搭配w
、s
、p
、"
、}
、]
等等輔助字元使用。
再搭配y
、d
這些指令使用。實現複製、刪除功能。
配合遊標移動相關命令使用。如在多行尾部修改:
Vim 對很多簡單操作已經定義了重複鍵:
;
:重複最近的字元查詢(f、t等)操作。,
:重複最近的字元查詢操作,反方向。n
:重複最近的字串查詢操作(/和?)。(vscode中直接/
進入命令搜尋字串)N
:重複最近的字串查詢操作(/和?),反方向。(vscode中直接/
進入命令搜尋字串).
:重複執行最近的修改操作。多個視窗操作同一個檔案。
:sp
:水平分屏。(split)
:vs
:垂直分屏。(vsplit)
注意,部分功能渲染在vscode可能失效,練習的同學轉linux下的vim。
操作下面處理前先鍵入ctrl
+w
:
主要:
w
:跳轉到下一個(往右和往下)視窗,如果已經是右下角的視窗,則跳轉到左上角的視窗W
:跳轉到上一個(往左和往上)視窗,如果已經是左上角的視窗,則跳轉到右下角的視窗n
或:new
:開啟一個新視窗c
或:close
:關閉當前視窗;當前視窗如果已經是最後一個則無效q
或:quit
:退出當前視窗,當最後一個視窗退出時則退出 Vimo
或:only
:只保留當前視窗,關閉其他所有視窗s
和:split
:作用相同,把當前視窗橫向一分為二v
和:vsplit
:作用相同,把當前視窗縱向一分為二=
:使得所有視窗大小相同(當調整過終端或圖形介面 Vim 的視窗大小後特別有用)瞭解:
_
:設定視窗高度,命令前的數位表示高度行數,預設為縱向佔滿(想專心編輯某個檔案時很有用)|
:設定視窗寬度,命令前的數位表示寬度列數,預設為橫向佔滿+
:增加視窗的高度,命令前的數位表示需要增加的行數,預設為 1-
:減少視窗的高度,命令前的數位表示需要減少的行數,預設為 1>
:增加視窗的寬度,命令前的數位表示需要增加的列數,預設為 1lt
>(提醒,我們用簡單範例:
自己客製化鍵入。