VIM可视模式的3个子模式用于处理不同类型的文本。本文介绍节看到如何激活每种子模式,以及如何在它们之间切换。
Vim有3种可视模式。在面向字符的可视模式中,我们能够选择任意的字符范围,不论它是单个字符,还是位于一行内,或是跨若干行的指定字符范围,都没问题。该模式适用于操作单词或短语。如果我们想对整行进行操作,可以改用面向行的可视模式。而面向列块的可视模式则允许对文档中的列块进行操作。
激活可视模式
v 键是通往可视模式的大门。在普通模式下,按 v 可激活面向字符的可视模式;按 V(v和Shift键一起按)可激活面向行的可视模式;而按 <C-v>(v和Ctrl键一起按)则可激活面向列块的可视模式。
命令 | 用途 |
v | 激活面向字符的可视模式 |
V | 激活面向行的可视模式 |
<C-v> | 激活面向列块的可视模式 |
gv | 重选上次的高亮选区 |
gv 命令是个有用的快捷键,它用来重选上一次由可视模式选择的文本范围。不管上个选区是面向字符的、面向行的,还是面向列块的,gv 命令都能够正确地工作。不过如果上次的选区被删除了,那么请慎用gv命令。
在可视模式间切换
可以在不同风格的可视模式间切换,方式与在普通模式下激活可视模式的方式相同。如果当前处于面向字符的可视模式,可以按 V 来切换到面向行的可视模式,或是用 <C-v> 来切换到面向列块的可视模式。然而,如果在面向字符的可视模式中再次按 v,就会回到普通模式。所以,可以把 v 键当成在普通模式及面向字符的可视模式间转换的开关,V 及 <C-v> 键也一样可以在普通模式及其对应的可视模式间切换。
按键操作 | 用途 |
<Esc> / <C-[> | 回到普通模式 |
v / V / <C-v> | 切换到普通模式(在对应的面向字符可视模式、面向行的可视模式和面向列块的可视模式中使用时) |
V | 切换到面向字符的可视模式 |
V | 切换到面向行的可视模式 |
<C-v> | 切换到面向列块的可视模式 |
O | 切换高亮选区的活动端 |
选区的活动端高亮选区的范围由其两个端点界定。其中一端固定,另一端可以随光标自由移动,可以用 o 键来切换其活动的端点。在定义选区时,如果定义到一半,才发现选区开始的位置不对,此时用这个键会很方便,不用退出可视模式再从头开始,只需按一下 o,然后重新调整选区的边界即可。