在 visual mode 中, v
其實就代表 visual selection ,也就是選取模式。按了 v
之後可以搭配左右鍵開始選取範圍之外,也可以用以下的快捷鍵來更快的選取範圍。
選取一個單字(包含空白)
mode: visual
key: vaw
速記法:a
w
ord
This is an apple.
^---^
vaw
選取一個單字(不包含空白)
mode: visual
key: viw
速記法: i
nner w
ord
This is an apple.
^--^
viw
選取一整行
mode: visual
key: V
速記法: 小 v
的相反
This is an apple.
^---------------^
V
選取小括號內的文字
mode: visual
key: vi(
or vib
速記法: i
nner () block
def func(param):
^---^
vi(
還可以將 (
換成 [
, {
, <
, "
, '
等符號,就可以選取由這些符號所包起來的部分。如果想連符號都一起選取就可以將 i
nner 的部分改為 a
。這個技巧可以說是寫程式必備的。
def func(param):
^-----^
vab
選取 HTML tag 內的文字
mode: visual
key: vit
速記法: i
nner tag
<h1>Hello World</h1>
^---------^
vit
如果要連 HTML tag 一起選,同樣將 i
nner 改為 a
即可。
轉換大小寫
mode: visual
key: v~
速記法:好像沒有速記法XD
THIS IS AN APPLE.
^---------------^
V~
結果:
This is an apple.
此外,也可以用 v
選取之後,按 U
或者 u
來轉換大小寫。
THIS IS AN APPLE.
^---------------^
Vu
結果:
this is an apple.
選取區塊
其實在 VIM 中也可以像滑鼠一樣,選取整個區塊。通常在註解整個區塊時很好用。
mode: visual
key: CTRL+v
例如:
## ABC
## DEF
## HIJ
如果要選取 ABDEHI
這個區塊,只要在 A
的地方按 CTRL+v
就可以開始搭配方向鍵選取。
選取後有以下幾種動作可以進行:
- 按下
d
刪除整個區塊 - 按下大寫
I
後可以進行 block insert ,輸入完文字之後按ESC
,區塊的每一行的相對應位置都會是剛剛新增的文字 - 按下大寫
A
後可以進行 block append ,輸入完文字之後按ESC
,區塊的每一行的結尾都會是剛剛新增的文字
恢復選取相同範圍
如果選取範圍之後不小心把選取的範圍清除,可以按 gv
,重新恢復剛剛選取的範圍。