我在文件中有这样的文本:
in IDMAN
ip frghj
我希望文本是这样的:
in *IDMAN
ip *frghj
你可以做:
:%s/\%3c/*
解释:
:s是替代命令,%是文件中所有行的范围/是模式分隔符\%3c是在该行的第三个字符处不匹配任何内容的模式*是替换表达式I在IDMAN正常模式下将光标悬停在首都上。

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

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

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

对于示例文件:
in IDMAN
ip frghj
和以下输出(每行一个星号):
in *IDMAN
ip *frghj
命令序列如下(光标必须在应该发生加法的字符上):
CTRL-vjI*ESC
这意味着:
如何在vim中每*行恰好三个字符之后添加一个字符:
:%s/\(...\)/\1*/
见:help :s,,,:help range_:help s/\\1
或者,更短一点(非常感谢@Benoit :-))
:%s/.../&*/
见help s/\&(感谢@Benoit 指出这一点)