vim 為文字選取特別建立了一個模式,稱為可視模式( Visual Mode )。 中文是這樣翻啦,不過這個模式還是英文比較好聽點。 在 visual mode 下,還是可以使用普通模式下的移動方式,差別在於游標移動時所經過的區域會被反白,也就是被選取起來的意思。 而被選取的區域可以用運算子對其做操作,至於 vim 中有哪些運算子,後面會慢慢介紹到,等不及的人可以 :help operator 來看看 vim 提供了哪些運算子。
vim 選取文字有三種方式,字元選取是用 v ( visual 的意思 ),這就是一般我們使用滑鼠的選取方式。 行的選取用 V ,這個選取方式差別在於選取的單位是一行。 另外還有個區塊選取是用 CTRL-v ,選取的會是一個矩形。 一般比較常用的應該還是字元選取,行的選取適用於刪除或移動多行。 至於區塊選取,這比較適合用在類似格式的資料,像是表格這種固定格式的資料。 基本上選取的範圍就是我們進入 visual mode 時的游標位置到目前游標所在位置所框出來的範圍,根據不同的選取方式,反白的地方會有小小的不同。 要取消選取,離開 visual mode,和插入模式一樣按下 ESC 就行啦。
在選取文字時,如果只能維持一個方向做選取,那就會被進入 visual mode 的位置所限制。 vim 提供了一個按鍵來將現在游標的位置和進入 visual mode 的位置交換,當我們想要換邊做選取時,按下 o 游標就會跑到另外一端了。 o 是 other 的意思,即另外一邊。 文字選取與行的選取是有兩邊沒錯,但如果是區塊選取呢?矩形是有四個角的。 在區塊選取時,按下 o 只會在矩形的對角線上換邊,如果要換一條對角線,就要按下 O ,同樣是 other 的意思,但藉由大小寫來賦予不同的換邊方式。