Vim (五) 三种可视模式

本文详细介绍了Vim的三种可视模式:字符、行和块模式,以及在这些模式下如何高效地移动光标、选择文本、执行修改命令。重点讲述了面向行的可视命令的重复执行、面向列块的可视模式在编辑表格时的实用功能,以及在长短不一的文本块后添加文本的方法。理解并掌握这些技巧能大幅提升Vim的编辑效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vim 的可视模式允许我们选中一块文本区域,并且在上面进行操作。

从表面看,这没什么区别,因为很多的编辑器都采用这样子的方式,但是Vim的可视模式的做法却截然不同。

在运行一个可视模式的命令之后,会退出可视模式,进入到普通模式。


1.  Vim 有3中可视模式,分别用作操作字符文本,行文本,和块文本。


技巧20  深入理解可视模式

----------------------------------------------------------------------------------------------------------------------------------------

1. 在可视模式下面, h j k l 依旧可以当作光标键使用。

2. f{char}也可以跳转到某个字符上面, ; 和 ,来执行正向和反向的跳转

3. 使用查找命令,n和N执行正向和反向的跳转。


在可视模式下面 移动光标,就可以高亮选择区域的部分。


4. 和普通模式相同,c命令的功能也是一样的,删除指定的文本并且进入插入模式。


不过要指定所操作的范围,普通模式和可视模式的方式却是截然不同。

普通模式: 先触发修改命令,然后输入用动作命令指定其作用范围。 (成为操作符命令)

可视模式:先选中修改区域,然后触发修改命令。

(可以看到二者是次序颠倒的,但是在两个模式下面,很多字符都有相同的作用)



技巧21 选择高亮区域

----------------------------------------------------------------------------------------------------------------------------------------

1. 如何进入可视模式?(共有三种可视模式)

v:   (小写v)激活面向字符的可视模式

V: (大写V)激活面向行的可视模式

  <C-v>:     激活面向块的可视模式

gv:                重选上次的高亮区域。


2. 在不同的可视模式之间进行切换。

2.1 通过按键 对应的大写字母可以在不同的可视模式之间进行切换。

2.2 在面向字符的可视模式下面按键  v 可以返回普通模式。(面向块 和面向行的可视模式都是一样的)


<Esc> / <C-[> :  回到普通模式

o : 切换高亮选区的活动端


3. 切换选区的活动端

高亮选区由两个断点确定:一个固定的端点,一个活动的端点。

字符 o 可以在不同的的端点之间来回的切换。



技巧22 重复执行面向行的可视命令

----------------------------------------------------------------------------------------------------------------------------------------

其实也就是所说的点范式。

比如: 如果对某一行代码进行缩进, > 和 < 可以进行这样子的操作。

   V : 选中行

   > :对该行缩进一次

   .   : 可以重复上一次的命令,非常好用。

. 使用点范式的时候,它所操作的文本数量和上次被高亮选中的文本数量相同。

对于面向行的高亮选取来说(文本数量按照行来计算),这种做法往往符合我们的要求。

但是对于,面向字符的高亮选区来说,却可能会造成问题。




技巧24  只要有可能,最好用操作符命令,而不是用可视命令

----------------------------------------------------------------------------------------------------------------------------------------

 vit: 选择标签里的内容,可以被解读为选中标签内部(inside)的内容。 it 是一种文本对象。

gU it : 操作符 + 动作命令


如果,我们想要使用点命令重复某些有用的操作,那么最好远离可视模式。作为一般的原则,

在做一系列的可重复的修改的时候,最好首选操作符命令,而不是其对应的可视模式命令。


技巧25  使用面向列块的可视模式 编辑表格区域

----------------------------------------------------------------------------------------------------------------------------------------

在任何的编辑器中我们都可以操作以行为单位的文本,但是以列为单位的文本我们就需要更加专业 的工具了。

Vim 面向列块的可视模式就提供了这种工具,可以对纯文本表格进行修改。


1. 在同一列插入一条丨。

<C-v>:  进入面向列的可视模式

   jjjj    : 选定一列。

  x...     : 删除列

  gv      : 重新选定删除区域

          r|       : 将那一列中的所有的 字符,替换为 |


2 .  修改列文本:

总之有些小神奇的样子。



技巧26  在长短不一的高亮块后面添加文本

----------------------------------------------------------------------------------------------------------------------------------------

列块 可视模式,不仅仅可以操作由列行组成的方形代码块,而且可以操作长短不一的文本。

<C-v>: 进入列块可视模式

jj : 选定接下来的两行

$:  把选区扩大的每行的结尾。 (虽然每行的长度不宜样,但是Vim 可以打破方形的限制,创造出右边界长短不一的文本选区)

A: 在选取的结尾添加字符串,进入插入模式。

<Esc>: 离开插入模式,进入普通模式。





Vim 对于 "i" 和 “a” 键的约定。

从普通模式进入插入模式: "i",把光标置于当前字符之前,"a"把光标置于当前字符之后。

I 命令:把光标置于当前行的行首

A 命令: 把光标置于当前行的结尾。


从列块可视模式进入到插入模式:

I  :  把光标置于选区的开头

A  :   把光标置于选取的结尾。


但是在可视模式,以及操作副待决模式中: ‘i’ 和 ‘a’ 沿用不一样的约定。

他们会被当作一个文本对象(后面讨论文本对象)的组成部分!










































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值