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



我正在尝试在Vim中编写命令,该命令可以删除第三行中的第9个和第11个符号。我做了这个3s/.{9,11}//,但它不起作用。如果您能提出建议,我们将不胜感激。下面是一个例子。我有三条线

海上三米

海下三米

在vim-中需要一些帮助

所以我想删除第三行中的第9个符号;e";单词中的字母";一些";第11个符号是字母";h〃;在单词"中;帮助";。

仅适用于第三行:

:3norm! 9|x10|x

:norm! 3G9|x10|x

应用于整个缓冲区:

:%norm! 9|x10|x

将注释移动到答案

对于Vim,许多正则表达式特殊项都需要反斜杠转义。%c是列匹配操作。因此

:3s/%9c.//

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

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

最新更新