2012-02-17 43 views

回答

1

我不知道easy方法來啓用自定義命令的完成。假設你有一個命令foo帶着一幫允許參數barbasbaz,然後完成很簡單:你可以有foo barfoo basfoo baz。如果他們不是or'd,但是,你可以有任何三個組合。

它變得略差,當你有一個超過1「深度」(bar可以使用參數carcascaz,例如)。

zsh中,我的一般理解是在completion functions中詳細說明了命令的完成情況。這些函數是特定於應用程序的,因爲每個應用程序的參數都是特定於這些應用程序的。例如,tmux(終端複用器,類似於screen,如果您不熟悉)具有相當複雜的完成功能:here's a link

如果您想編寫自己的完成功能,則文檔可用並可訪問。這裏有一些鏈接,我正在(緩慢)按照我的方式工作 - 他們一定會告訴你如何完成工作,但有很多閱讀。 Z-Shell是一個複雜的野獸。

你在實現對主機名狀的參數完成特別感興趣,和你單挑ssh爲理念。如果你有ZSH源,sshzsh完成函數定義在Completion/Unix/Command/_ssh中。如果不是,這是一個link


當然,this SO question是非常相似。如果myscriptssh的參數足夠相同,則可以單獨使用compdef

相關問題