例如,我有以下文字:
black brown cat bla bla_____
black brown cat bla bla__
black brown cat bla bla_______
black brown cat bla bla___
black brown cat bla bla_____
black brown cat bla bla
每行都有不同长度的下划线(可以是任何其他字符)
我想要使用f
命令删除行末尾的下划线,使用x
删除,直到找不到模式并转到下一行。
预期结果是没有下划线符号的行:
black brown cat bla bla
black brown cat bla bla
black brown cat bla bla
black brown cat bla bla
black brown cat bla bla
我该怎么做?
答案 0 :(得分:2)
最简单的是:
%s/_*$//
f/F
非常方便,但不适用于此用例,它会引导您进入行中的下一个x
字符,但不会检查是否存在连续x
或如果x
旁边的字符是[^x]
。
只说到您的示例,如果您必须使用f/F
类型的命令,则可以执行$vTax
,此处我使用了硬编码a
,因为您始终a_____$
但我认为你的真实文本不会像它一样。
答案 1 :(得分:1)
首先,记录您的宏:
qq
f_
D
q
然后,在[range]
:
:[range]norm @q
可替换地:
:[range]norm f_D
:[range]s/_\+$