2013-09-28 39 views
0

是否无法在用户定义的命令中调用另一个用户定义的命令?在用户定义的命令中调用另一个用户命令

我尝试了以下两行,但他们都没有工作:

command! GetRapidLinks FindRapidLinks|MatchesOnly 

command! GetRapidLinks :FindRapidLinks|:MatchesOnly 

Vim的帮助下写着:

不能使用 “:X”, “:下一步” 和“:打印“

此限制的上下文不明确。我想不能在用户定义的命令中使用这些命令,对吧?

回答

1

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

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

或解决此通过:execute(对于情况下,当你不能重新定义其它命令):

:command! GetRapidLinks execute 'FindRapidLinks'|MatchesOnly 

一般来说,使用-bar除非您的自定义命令需要被传递的参数包含特殊字符如|

-1

也许尝试反引号`(不被误用引号“或“)

为如

command! GetRapidLinks `FindRapidLinks` | MatchesOnly 

command! GetRapidLinks $(FindRapidLinks) | MatchesOnly 
+0

谢谢。我尝试了两个。 Vim回应道:E492:不是编辑指挥。 –

0

其实,帮助的意思是,你可以不要拨打用户命令:Next:X,因为这些是少数内置命令,以资本开始之三。我不知道,为什么你的vim竟然说,你不能定义一个:Print命令,因为它是可以定义自己的自定义:Print命令(因为内置命令只对:print无论如何别名)

我不知道,你到底想要达到什么目标,所以我不能回答你问题的第一部分。然而,你可以在一个函数或一个自定义命令中调用另一个自定义命令。

相关问题