39

vim 中有什么方法可以选择所有这些行的结尾吗?(我只在这些屏幕截图中显示行尾)。

在块模式下,如果底线长于其余部分,我可以全部获取它们,但如果底线较短,则截断较长的线。

编辑 | 我想我可以在选择之前用空格填充底线,然后再删除空格。

在此处输入图像描述 在此处输入图像描述

4

4 回答 4

71
  1. 将光标放在要成为该块一部分的左上角字符上。
  2. ctrl使用+进入块选择模式v
  3. 选择到行尾$(这是您缺少的步骤;如果您使用移到第一行的末尾,$则选择也将延伸到后续行的末尾)
  4. 向下移动 3 行3j

Vim 文档中有关可视模式的部分有更多信息,您可以在线阅读,或者直接输入:help v_$Vim。

于 2012-05-27T08:27:02.633 回答
15

或者,您可以设置virtualedit( :h 'virtualedit') 设置,以便在任何时候处于可视块模式时,您都可以移动光标甚至超过行尾。例如:set virtualedit=block

于 2012-05-27T19:45:08.653 回答
14
  1. 单击要附加文本的第一行中的某处(任意位置)。

  2. Control+ V

  3. 按下Down以创建跨越所需行的任意垂直块选择。

  4. 按下$可将可视块选择扩展到所选每行的末端。

  5. Shift+A将文本附加到每个选定的行。

  6. 键入要附加的文本。

  7. 按下Escape,文本将附加到选定的行上。

于 2017-06-08T19:00:49.583 回答
12

如果您要选择每行的最后一个字符,例如,如果您想在每行末尾的引号后添加一些内容,您可以执行以下操作:

  1. 将光标放在最后一个字符上(在本例中,第一行的最后一个引号)
  2. 进入封锁模式:control+V
  3. 向下移动以选择要更改的行数。
  4. 在行尾插入:shift+A
  5. 键入要添加的内容,然后退出可视模式
  6. 您的文本现在应该插入到每个选定行的末尾!

希望这对像我这样寻找与上述类似但不完全相同的答案的人有所帮助。

于 2015-04-25T18:02:06.587 回答