不能在用户定义的命令中调用另一个用户定义的命令吗?
我尝试了以下两行,但它们都不起作用:
command! GetRapidLinks FindRapidLinks|MatchesOnly
command! GetRapidLinks :FindRapidLinks|:MatchesOnly
Vim 帮助内容如下:
您不能使用“:X”、“:Next”和“:Print”
这种限制的背景尚不清楚。我想不能在用户定义的命令中使用它们,对吧?
不能在用户定义的命令中调用另一个用户定义的命令吗?
我尝试了以下两行,但它们都不起作用:
command! GetRapidLinks FindRapidLinks|MatchesOnly
command! GetRapidLinks :FindRapidLinks|:MatchesOnly
Vim 帮助内容如下:
您不能使用“:X”、“:Next”和“:Print”
这种限制的背景尚不清楚。我想不能在用户定义的命令中使用它们,对吧?
这可能是因为您没有使用;定义:FindRapidLinks
命令。-bar
没有它,命令会“吃掉”所有剩余的参数(cp. :help command-bar
)。所以,要么重新定义:
:command! -bar FindRapidLinks ...
:command! GetRapidLinks FindRapidLinks|MatchesOnly
或通过以下方式解决此问题(对于无法重新定义其他命令的情况):execute
:
:command! GetRapidLinks execute 'FindRapidLinks'|MatchesOnly
作为一般规则,-bar
除非您的自定义命令需要传递包含特殊字符(如|
.
实际上,帮助的意思是,您不能调用用户命令,:Next
或者:X
,因为这些是少数以大写字母开头的内置命令。我不确定,为什么你的 vim 实际上说,你不能定义:Print
命令,因为可以定义你自己的自定义:Print
命令(因为内置命令只是一个别名:print
)
我不确定,你到底想在这里实现什么,所以我无法回答你问题的第一部分。但是,您可以在函数或自定义命令中调用另一个自定义命令。
也许尝试反引号`(不要误认为引号'或“)
例如
command! GetRapidLinks `FindRapidLinks` | MatchesOnly
或者
command! GetRapidLinks $(FindRapidLinks) | MatchesOnly