为什么命令在 VIM 中不能一起工作而只能单独工作?

为什么命令在 VIM 中不能一起工作而只能单独工作?

考虑以下文本:

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' [...]

相关内容