0

我在文件中有这样的文本:

in IDMAN
ip frghj

我希望文本是这样的:

in *IDMAN
ip *frghj
4

4 回答 4

5

你可以做:

:%s/\%3c/*

解释:

  • :s是替代命令,%是文件中所有行的范围
  • /是模式分隔符
  • \%3c是在该行的第三个字符处不匹配任何内容的模式
  • *是替换表达式
于 2011-10-05T06:43:48.750 回答
4

IIDMAN正常模式下将光标悬停在首都上。

在此处输入图像描述

CTRL使用-输入可视块选择,V然后使用j.

在此处输入图像描述

SHIFT使用-进入插入模式,I然后输入所需的字符。

在此处输入图像描述

回到正常模式,ESC字符将出现在其余行的同一列中。

在此处输入图像描述

于 2011-10-05T06:17:17.673 回答
0

对于示例文件:

in IDMAN
ip frghj

和以下输出(每行一个星号):

in *IDMAN
ip *frghj

命令序列如下(光标必须在应该发生加法的字符上):

CTRL-vjI*ESC

这意味着:

  • CTRL-v:启动可视块模式
  • j:也标记第二行
  • I:进入块的输入模式
  • *:插入字符
  • ESC:关闭可视输入模式,对所有标记的行添加字符。
于 2011-10-05T06:17:05.697 回答
0

如何在vim中*行恰好三个字符之后添加一个字符:

:%s/\(...\)/\1*/

:help :s,,,:help range_:help s/\\1

或者,更短一点(非常感谢@Benoit :-))

:%s/.../&*/

help s/\&(感谢@Benoit 指出这一点)

于 2011-10-05T07:20:29.383 回答