我正在尝试在Vim中编写命令,它可以删除第三行中的第9和第11个符号。我这样做了3s/.{9,11}//
但它没有用。如果你的建议这样做,将不胜感激。
这是一个例子。我有三行
海拔三米
海下三米
在vim中需要一些帮助
所以我想在第三行中删除第9个符号,即" e"字母中的字母" some"和第11个符号是字母" h"在word" help"。
答案 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.//