0

不能在用户定义的命令中调用另一个用户定义的命令吗?

我尝试了以下两行,但它们都不起作用:

command! GetRapidLinks FindRapidLinks|MatchesOnly

command! GetRapidLinks :FindRapidLinks|:MatchesOnly

Vim 帮助内容如下:

您不能使用“:X”、“:Next”和“:Print”

这种限制的背景尚不清楚。我想不能在用户定义的命令中使用它们,对吧?

4

3 回答 3

1

这可能是因为您没有使用;定义:FindRapidLinks命令。-bar没有它,命令会“吃掉”所有剩余的参数(cp. :help command-bar)。所以,要么重新定义:

:command! -bar FindRapidLinks ...
:command! GetRapidLinks FindRapidLinks|MatchesOnly

或通过以下方式解决此问题(对于无法重新定义其他命令的情况):execute

:command! GetRapidLinks execute 'FindRapidLinks'|MatchesOnly

作为一般规则,-bar除非您的自定义命令需要传递包含特殊字符(如|.

于 2013-09-28T12:14:51.287 回答
0

实际上,帮助的意思是,您不能调用用户命令,:Next或者:X,因为这些是少数以大写字母开头的内置命令。我不确定,为什么你的 vim 实际上说,你不能定义:Print命令,因为可以定义你自己的自定义:Print命令(因为内置命令只是一个别名:print

我不确定,你到底想在这里实现什么,所以我无法回答你问题的第一部分。但是,您可以在函数或自定义命令中调用另一个自定义命令。

于 2013-09-28T10:53:00.390 回答
-1

也许尝试反引号`(不要误认为引号'或“)

例如

command! GetRapidLinks `FindRapidLinks` | MatchesOnly

或者

command! GetRapidLinks $(FindRapidLinks) | MatchesOnly
于 2013-09-28T10:33:58.970 回答