2016-08-02 132 views

回答

6

默認的git完成is extendible

說你有你自己的git子命令(在運行‘混帳富’git會運行一個程序'混帳富」 ),你想「混帳f「爲您完成該子命令的名稱 。你可以讓該子命令通過用戶命令風格着稱完成 :

% zstyle ':completion:*:*:git:*' user-commands foo:'description for foo' 

`用戶命令是一個列表樣式,這樣你就可以添加任意數量的程序存在。 的:說明部分是可選的,所以你可以從 添加所有git- *程序在您的$ PATH這樣的:

% zstyle ':completion:*:*:git:*' user-commands ${${(M)${(k)commands}:#git-*}/git-/} 

是,只要能夠增加

zstyle ':completion:*:*:git:*' user-commands new-branch:'custom new branch function' 

zshrc

如果您想要處理自定義命令的參數,那麼使用自定義compdef文件是更好的解決方案。上面引用的文件也有一些細節:只需創建一個定義git-<yourcommand>函數的標準定義文件,默認的git完成將在需要時自動使用它。