我正在尝试在 Vim 中编写命令,该命令可以删除第三行中的 9 和 11 符号。我这样做了3s/9, 11///
,但没有发生我预期的情况。我们将非常感激您的建议。更准确地说:我想删除第三行中的第 9 个符号和第 11 个符号。例如我有三行
- 距海面三米
- 低于海面三米
- 需要 vim 方面的帮助
所以我想删除第三行中的第9个符号,即单词“some”中的“e”字母和第11个符号,即单词“help”中的字母“h”。
答案1
27.4 Matching multiple times
用户手册第 27 章部分对多次匹配进行了说明(请参阅:help usr_27.txt
)。
如果第 3 行至少包含 9 个字符,以下命令将删除该行的前 9、10 或 11 个字符。如果该行包含较少的字符,它将返回E486: Pattern not found:
:3s/.\{9,11}//
不确定这是否是您想要的,如果不是,请更新您的问题。
答案2
在编辑模式下,输入:
08lxl.
0
将光标移至行首8l
将光标向前移动 8 个字符x
删除光标下的字符l
将光标向前移动 1 个字符.
重复上一个命令 (x)
如果你想将其绑定到一个键(例如,
):
:map , 08lxl.
,
此后每次您在编辑模式下按时,它都会执行这些命令。