在vim中替换第n个符号的命令

时间:2015-11-06 12:14:50

标签: vim

我正在尝试在Vim中编写命令,它可以删除第三行中的第9和第11个符号。我这样做了3s/.{9,11}//但它没有用。如果你的建议这样做,将不胜感激。 这是一个例子。我有三行

  

海拔三米

     

海下三米

     

在vim中需要一些帮助

所以我想在第三行中删除第9个符号,即" e"字母中的字母" some"和第11个符号是字母" h"在word" help"。

2 个答案:

答案 0 :(得分:4)

仅适用于第3行:

:3norm! 9|x10|x

:norm! 3G9|x10|x

在整个缓冲区上应用:

:%norm! 9|x10|x

答案 1 :(得分:3)

将评论移至答案

对于Vim,许多正则表达式特殊内容需要反斜杠转义。 %c是列匹配op。所以

:3s/\%9c.//

将替换"任何字符"没有任何东西。您也可以连接替换,但每个表达式之间的事情都会发生变化。在这种情况下,在删除第9列之后,11(帮助中的' h')实际上将位于第10位。

:3s/\%9c.//|s/\%10c.//