我在文件中有这样的文本:
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 指出这一点)