2016-08-02 131 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完成将在需要时自动使用它。