如何在 vi 中逐行 select?

How to select from line to line in vi?

我经常想在 vi 中 select 多行。例如从第 1 行到第 10 行。

所以,当我想从一行跳到另一行时,我通常做的是输入 :110 以跳转到第 110 行,例如

而且,当我想逐行 select 时,我通常按 v 进入可视模式,然后使用 k 或 [= 向下滚动15=].

因此,直觉上我只需按 v,然后键入 :<line number>。但这是行不通的。

如何在vi中select从X行到Y行?

假设您要突出显示第 10 行到第 20 行。您可以使用:

10GV20G

细分:

  • 1010输入缓冲区
  • G转到缓冲区中的行号
  • V进入视线模式
  • 2020输入缓冲区
  • G转到缓冲区中的行号

注意G表示Shift+g(大写G) .

来源和 : 命令是 here

选择本身没有意义;您通常希望在选择上调用命令。许多对视觉选择有效的命令都有相应的 Ex 命令。这样,如果您已经知道确切的范围,则无需通过视觉模式。视觉模式的最大好处是,如果没有单个动作或文本对象,您可以交互式和迭代地调整所选区域。

好处:help :range是您可以简洁地指定行。例如第110到120行可以写成:110,120,也可以写成:110;+10.

如果同时设置数字和相对数字,则很容易看到目标终点线。

:set number relativenumber

所以,假设你在第 10 行,目标行显示 11,你用大写 V 开始选择,然后按 11j

V11j

如果你的块前后有空行,直接输入vip(可视内段)

简单就按 Shift v 行号 gg

例子:你当前行到第41行 只需按 Shift v 41 gg

注意: 你可以通过按行号移动到所选行 gg