2013-09-28 66 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無論如何別名)

我不知道,你到底想要達到什麼目標,所以我不能回答你問題的第一部分。然而,你可以在一個函數或一個自定義命令中調用另一個自定義命令。

相關問題