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: 以整個畫面為單位上下滾動