Shortcut
移動
游標移動 h j k l 對應 ← ↓ ↑ →。
- 因為雙手在鍵盤上的固定位置,
j是在右手食指上,且程式碼照理說是往下寫,因此j很自然是往下鍵 - 可以搭配數字使用,例如輸入
5j,代表往下移動五行 - 斜向的移動,IDE 建議可以使用 AceJump 這個套件來進行移動,vim 上面可以使用 Easymotion
- 建議開啟 vim 的 set relative number 功能,這樣就可以很方便的使用數字鍵進行移動
set relativenumber
也可以簡寫成 set rnu。
w 與 W : 根據字串在行上往後移動,會移動到字串的首字元。
w會視特殊字元斷句 (除了_)W只認空白字元為斷句
e 與 E : 根據字串在行上往後移動,會移動到字串的尾字元。
b 與 B : 根據字串在行上往前移動,會移動到字串的首字元。
^ : 移動到該行的第一個字元 (不包含空白),0 的功能類似,但是是移動到行首 (包含空白)。
$ : 移動到行尾。
+ : 移動到下一行的行頭,等同於 j^。
- : 移動到上一行的行頭,等同於 k^。
% : 移動到成對符號 (例如 : {} 與 ())。
gg 與 G : 移至該檔案的第一行與移至檔案的最後一行。
{ 與 } : 移動至下一個段落。
H : 移動至視窗的最上方。
L : 移動至視窗的最下方。
M : 移動至視窗的正中間。
搜尋
f 與 F : 在該行上搜尋字元並跳過去,一樣可以搭配數字使用。
f: 在行上往後找。F: 在行上往前找。
t 與 T : 在剛行上搜尋字元並跳到該字元的前一個字元。
t: 在行上往後找。T: 在行上往前找。
; : 重複剛剛的搜尋動作。
, : 返回剛剛使用 ; 前的位置。
輸入 : 進入指令模式之後,可以使用 / 使用關鍵字,
搜尋的結果可使用 n 前往下一個結果,或是使用 N 回到上一個結果。
選取
v 與 V : 進入選取模式,V 會是整行選取的模式。
編輯
o 與 O : 往下與往上插入一行並進入編輯模式。
J : 刪除後面的換行。
i 與 I : 進入編輯模式。
i: 從字元的前方開始。I: 跳至該行的行首開始。
a 與 A : 進入編輯模式。
a: 從字元的後方開始。A: 跳至該行的行尾開始。
x 與 X : 刪除字元。
X: 刪除游標前一個的字元。
s 與 S : 刪除並進入編輯模式。
s: 刪除字元。S: 刪除整行。
y、Y 與 yy : 選取範圍進行拷貝。
y: 拷貝選取範圍。Y: 拷貝整行。yy: 拷貝整行,等同Y。
p 與 P : 在字元的後方貼上與前方貼上。
d 、 dd 與 D : 刪除。
d: 選取範圍後,進行刪除。dd: 刪除整行。D: 刪除該字元。
> 與 < : 縮排與反縮排。
u 與 Ctrl + r : 還原 (undo) 與取消還原 (redo)。
- 在單行下,可以使用
>>與<<快速進行縮排與反縮排。 - 多行縮排需要先選取想要的範圍在輸入
> <,可以搭配數字5>使用。
預設中,刪除、複製與剪下的內容都會進入預設共用的剪貼簿。
但剪貼簿有多個,也有給複製單獨使用的剪貼簿。
如果你只想要貼上複製的內容,可以使用快捷鍵
"0p來貼上。
編輯進階技巧
針對成對符號內下命令
| 命令 (operator) | 是否包含成對符號 | 成對符號 (不區分 open/close) |
|---|---|---|
v |
i |
{ }, aka B, Brace |
d |
a |
( ), aka b, brace |
c |
[ ] |
|
y |
' 與 " : 不分 open close |
|
< > |
||
t : tag |
||
w : word |
針對成對符號本身做事
使用前請在 Vim 的設定中啟用。
set surround
修改成對符號:
c: changes: surround- original : 成對符號
- new : 新的成對符號
刪除成對符號:
d: deletes: surround- 選擇成對符號
針對某一個範圍加上成對符號:
- 先選取一段範圍
S(注意是大寫)- 選擇你要的成對符號,如果想在加上括號後頭尾預留空白,請使用開頭的成對符號,如
(、[與{,反之如果不想頭尾預留空白,請使用結束的成對符號,如)、]與}
視窗
zt: 將游標所在的該行,移動至畫面的最上面zz: 將游標所在的該行,移動至畫面正中央zb: 將游標所在的該行,移動至畫面的最下面Ctrl + y與Ctrl + e: 以一行為單位上下滾動Ctrl + u與Ctrl + d: 以半個畫面為單位上下滾動Ctrl + b與Ctrl + f: 以整個畫面為單位上下滾動