【发布时间】:2015-02-13 07:21:06
【问题描述】:
如何从某个位置删除一个字符?例如,我有字符串 hello,删除第三个字符并获得 helo。 我曾尝试使用下一个表达式,但它不起作用。
.s/\%3c//g
【问题讨论】:
-
必须使用
command mode吗?
标签: regex vim vi substitution
如何从某个位置删除一个字符?例如,我有字符串 hello,删除第三个字符并获得 helo。 我曾尝试使用下一个表达式,但它不起作用。
.s/\%3c//g
【问题讨论】:
command mode吗?
标签: regex vim vi substitution
在normal mode 也称为command mode 但不要与command-line mode 混淆,您可以输入:
03lx
0 转到行首。
3l 向前移动 3 个字符。
x 删除光标下的字符。
【讨论】:
\%c 从每一行重新开始。所以你的解决方案只相当于第一行。
\%c 特殊原子是 零宽度 匹配;即它增加了一个限制(对匹配的字节数)不消耗字符。为此,请附加另一个消耗它的原子,例如. 用于任何字符匹配。然后,您的替换将按预期工作:
.s/\%3c.//g
【讨论】: