通过多行更改列中的所有字符

时间:2011-05-06 20:02:49

标签: vim

我不知道如何解释我想做什么,但我在Textmate中看到了这一点并且非常有用。假设我有这样的文字:

:aa => foo,
:ab => foo,
:ac => foo,
:ad => foo

现在我要选择键的所有第一个字符(lne中的4'a')并删除它们,以便结果如下所示:

:a => foo,
:b => foo,
:c => foo,
:d => foo

某种视觉模式会计列不是行。

7 个答案:

答案 0 :(得分:9)

使用 Ctrl + V 进入逐块可视模式。然后,您可以使用普通移动键选择一个文本块,然后按 x 将其删除。 I 将执行多行插入。

有关详细信息,请参阅vim中的:help ^V:help visual-operators

答案 1 :(得分:6)

在列模式下使用vim。要使用它,请按:

  
      
  1. Ctrl + V 进入列模式。
  2.   
  3. 选择要输入文字的列和行。
  4.   
  5. Shift + I 以列模式进入插入模式。
  6.   
  7. 输入您要输入的文字。

         

    注意:不要因为只更改了第一行这一事实而气馁。

  8.   
  9. Esc应用您的更改(或者 Ctrl + C )。
  10.         

    现在,您将看到已更改已应用。

来源:Column Edit Mode in VI

答案 2 :(得分:2)

使用Ctrl-V在块模式下选择,然后使用方向和编辑命令来完成剩下的工作。看到 How to remove quotes surrounding the first two columns in Vim?

答案 3 :(得分:1)

您正在寻找Visual Block模式,Ctrl+V可在普通模式下访问该模式。与TextMate中的Alt+select类似。

答案 4 :(得分:1)

正如其他人所说Ctrl-V就是答案。有关教程,请参阅Vimcast剧集“Selecting columns with visual block mode

答案 5 :(得分:0)

在您的特殊情况下:

:% s/a/

完成这项工作。

答案 6 :(得分:0)

您还可以使用搜索和替换来专门删除以冒号开头的行的第一个字母:

:%s/:./: