在 visual mode 中, v 其實就代表 visual selection ,也就是選取模式。按了 v 之後可以搭配左右鍵開始選取範圍之外,也可以用以下的快捷鍵來更快的選取範圍。

選取一個單字(包含空白)

mode: visual

key: vaw

速記法:a word

This is an apple.
^---^
 vaw

選取一個單字(不包含空白)

mode: visual

key: viw

速記法: inner word

This is an apple.
^--^
 viw

選取一整行

mode: visual

key: V

速記法: 小 v 的相反

This is an apple.
^---------------^
V

選取小括號內的文字

mode: visual

key: vi( or vib

速記法: inner () block

def func(param):
         ^---^
          vi(

還可以將 ( 換成 [ , { , < , " , ' 等符號,就可以選取由這些符號所包起來的部分。如果想連符號都一起選取就可以將 inner 的部分改為 a 。這個技巧可以說是寫程式必備的。

def func(param):
        ^-----^
          vab

選取 HTML tag 內的文字

mode: visual

key: vit

速記法: inner tag

<h1>Hello World</h1>
    ^---------^
       vit

如果要連 HTML tag 一起選,同樣將 inner 改為 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 ,區塊的每一行的結尾都會是剛剛新增的文字