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