13

我不知道如何解释我想做什么,但我在 Textmate 中看到过,它非常有用。假设我有这段文字:

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

现在我想选择键的所有第一个字符(lne 中的 4 个“a”)并删除它们,这样结果如下所示:

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

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

4

7 回答 7

9

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

有关完整的详细信息,请参见vim 中的:help ^V和。:help visual-operators

于 2011-05-06T20:06:04.390 回答
8

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

  1. Ctrl+V进入列模式。
  2. 选择要在其中输入文本的列和行。
  3. Shift+I在列模式下进入插入模式。
  4. 输入您要输入的文本。

    注意:不要因为只有第一行被更改而气馁。

  5. Esc 应用您的更改(或交替使用Ctrl+ C)。

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

资料来源:VI 中的列编辑模式

于 2011-05-06T20:05:51.607 回答
2

使用 Ctrl-V 在块模式下进行选择,然后使用方向和编辑命令完成其余操作。请参阅 如何删除 Vim 中前两列周围的引号?

于 2011-05-06T20:06:45.757 回答
1

您正在寻找可以Ctrl+V在普通模式下访问的可视块模式。就像Alt+select在 TextMate 中一样工作。

于 2011-05-06T20:06:25.880 回答
1

正如其他人所说Ctrl-V的是答案。有关教程,请参阅Vimcast插曲“使用可视块模式选择列

于 2011-05-06T20:11:43.910 回答
0

在您的特殊情况下:

:% s/a/

做这项工作。

于 2013-09-02T11:31:19.123 回答
0

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

:%s/:./:
于 2020-02-09T12:13:32.833 回答