Vim选择多行的结尾(块模式,但结束列的变化)

时间:2012-05-27 08:16:00

标签: vim

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

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

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

enter image description here enter image description here

4 个答案:

答案 0 :(得分:58)

  1. 将光标放在您希望成为该区块一部分的左上角字符中。
  2. 使用 ctrl + v
  3. 进入区块选择模式
  4. 使用 $ 选择到该行的末尾(这是您缺少的步骤;如果您使用移动到第一行的末尾$ 然后选择将延伸到后续行的末尾)
  5. 使用 3向下移动3行 j
  6. 有关视觉模式的Vim文档部分中有更多信息,您可以read online或在Vim中输入:help v_$

答案 1 :(得分:14)

或者,您可以设置virtualedit:h 'virtualedit')设置,这样,只要您处于可视块模式,就可以将光标移动到线的末端。例如。 :set virtualedit=block

答案 2 :(得分:9)

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

  1. 将光标放在最后一个字符上(在本例中,第一行的最后一个引号)
  2. 进入街区模式: control + V
  3. 向下移动以选择您想要更改的行数。
  4. 在行尾插入: shift + A
  5. 键入要添加的内容,然后退出“可视模式”
  6. 现在应该在每个选定行的末尾插入文本了!
  7. 希望这对我这样的人有所帮助,比如我上面搜索类似但不完全相同的答案。

答案 3 :(得分:9)

  1. 点击要添加文字的第一行的某处(任意位置)。

  2. Control + V

  3. 向下创建一个跨越所需行的任意垂直块选择。

  4. $ 将视觉区块选择展开到所选每行的末尾。

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

  6. 输入要附加的文字。

  7. Escape ,文本将附加在选定的行中。