Vim 进阶学习(六)—— 可视化模式

559 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情

可视类型

Vim 总共有 3 种不同的可视模式,分别用于操作字符文本、行文本或块文本。

在普通模式下:

  • v:进入面向字符的可视模式;
  • V:进入面向行的可视模式;
  • Ctrl-v:进入面向列块的可视模式;
  • gv:重选上次的高亮选区;它用来重选上一次由可视模式所选择的文本范围。不管上个选区是面向字符的、面向行的,或是面向列块的,gv 命令都能够正确地工作。

可视模式切换

可视化模式之间的切换也如同普通模式下激活可视化模式,即:

  • Esc:回到普通模式;
  • Ctrl-[:切换到普通模式;
  • v:切换到面向字符的可视模式;
  • V:切换到面向行的可视模式;
  • Ctrl-v:进入面向列块的可视模式;
  • o:切换高亮选区的活动端;

高亮选区的范围由其两个端点界定。其中一端固定,而另一端可以随光标自由移动,我们可以用 o 键来切换其活动的端点。在定义选区时,如果定义到一半时,才发现选区开始的位置不对,此时用这个键会很方便,我们用不着退出可视模式再从头开始,只需按一下 o,然后重新调整选区的边界即可。

实战演练

现在我们开始来一个实战演练来熟悉下可视化模式的一些操作。

首先我们有如下文本,我们要给这个文本做一个表格。

Chapter                Page
Normal mode               15
Insert mode              31
Visual mode              44

下面我们一步一步演示一下如何操作。

  1. 将位置移到空格中间出,找到我们的初始位置

image.png

  1. 接下来我们执行 Ctrl-v3j 命令,即进入面向列块的可视化模式,然后选中下面的三行,效果如下:

image.png

  1. 然后我们执行 x.. 命令删除一些空格,此时我们可以看到一行之间的两个单词间距变小了。

image.png

  1. 接着我们执行 gv 命令,gv 命令的作用就是重选上次的高亮块,即上次选中的四行。

image.png

  1. 然后我们执行 r| 命令,这个命令使将空格替换为竖线,在可视化模式下,下面四行都会被替换。效果如下:

image.png

  1. 我们再执行下 yyp 命令,复制出一行来,用于插入新的内容。

image.png

  1. 最后我们执行 Vr- 命令进入面向行的可视化模式,然后整行替换为 -

image.png

参考文档

  • 《Vim实用技巧》—— [英]Drew Neil

往期文章