考虑以下文本:
com.abc.JavaClassA.doSomething(JavaClassA.java:35)
com.abc.JavaClassA.doSomething(JavaClassA.java:35)
com.abc.JavaClassA$2.doSomething(JavaClassA.java:35)
com.abc.JavaClassA$1.doSomething(JavaClassA.java:35)
我运行命令:
:%s/\v\.[^\.]{-}\(.*\)//ge | g/\v\$[0-9]+$/de | %sort u | %!uniq
我预计:
com.abc.JavaClassA
但输出是:
com.abc.JavaClassA
com.abc.JavaClassA$1
为什么?我认为com.abc.JavaClassA$1
应该删除g/\v\$[0-9]+$/de
答案1
根据vim 的文档, :global
(又名:g
) 不能在|
- 分隔的命令链中使用,这|
是它的潜在参数之一。您可以通过以下方式解决这个问题:execute
:
:execute 'command1' | 'command2' [...]