如何在vim中每行上的两个字符后添加一个额外的字符

时间:2011-10-05 06:08:15

标签: text edit vim textedit

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

in IDMAN
ip frghj

我希望文字是这样的:

in *IDMAN
ip *frghj

4 个答案:

答案 0 :(得分:5)

你可以这样做:

:%s/\%3c/*

说明:

  • :s是替换命令,%是文件中所有行的范围
  • /是模式分隔符
  • \%3c是一种在行
  • 中的第三个字符处不匹配的模式
  • *是替换表达式

答案 1 :(得分:4)

将光标悬停在正常模式下I的首都IDMAN上。

enter image description here

使用 CTRL - V 输入视觉区块选择,并使用j向下一行。

enter image description here

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

enter image description here

使用 ESC 返回正常模式,该字符将显示在其余行的同一列中。

enter image description here

答案 2 :(得分:0)

对于示例文件:

in IDMAN
ip frghj

和以下输出(每行上一颗星):

in *IDMAN
ip *frghj

命令序列如下(光标必须位于应该添加的字符上):

CTRL-vjI*ESC

这意味着:

  • CTRL-v:启动视觉阻止模式
  • j:标记第二行
  • I:进入块的输入模式
  • *:插入字符
  • ESC:关闭可视输入模式,因此对于所有标记的行,将添加字符。

答案 3 :(得分:0)

如何在vim的每个行中三个字符后添加*个字符:

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

请参阅:help :s:help range:help s/\\1

或者,不久之后(非常感谢@Benoit :-))

:%s/.../&*/

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