2014-04-22 88 views
2

假設我有一個命令git-local(它可能是一個bash函數或/usr/local/bin二進制),並假設我想git-local具有相同的標籤完成的命令git了。最後,假設我很高效(懶讀),並且我不想去查找git命令用來手動複製並膨脹我的.bashrc的代碼(或者我粘貼的任何外部文件和源代碼) 。有沒有簡單的方法,我可以使用git-localgit相同的自動補全?複製bash補全(不復制實際的代碼)

回答

3

8.7 Programmable Completion Builtins

如果-p選項被提供時,或者,如果不提供任何選項,現有完井規格被印刷的方式,允許它們被作爲輸入重新使用。

喜歡的東西

$(complete -p git | awk '$NF="git-local"') 

可能?

例如爲:

$ complete -p foobar 
-bash: complete: foobar: no completion specification 
$ complete -p traceroute 
complete -F _known_hosts traceroute 
$ $(complete -p traceroute | awk '$NF="foobar"') 
$ complete -p foobar 
complete -F _known_hosts foobar 
+0

感謝,從'某種原因,$完整-p git'我得到'bash下完成:git的:沒有完成specification'。必須是我的設置有問題。 –