我通过 Homebrew 安装了 git .我通过安装在
中的脚本获得命令行补全/usr/local/etc/bash_completion.d/
但是我希望我的自定义 git-* 脚本也能完成。
我如何将其添加到现有的 git 完成中?
最佳答案
我会给你几个例子。
- 为别名添加补全
如果你有像这样的 pull 别名:
alias gp='git push'
然后您可以定义别名以使用与 git-push
相同的完成通过做。
compdef _git gp=git-push
- 为新命令添加补全
这是一个更难的。为 zsh 编写完成脚本并不简单,您可以看看那些 in this project一些指导。例如,看看 completion script对于 git-wtf
- 重用现有的补全,但进行了修改
如果你有一个像这样在日志中搜索的脚本:
query="$1"
shift
git log -S"$query" "$@"
您想使用 git-log
的组合, 稍作修改:您想先完成搜索字符串,然后使用 git-log
的常用选项.然后你可以使用这个:
_git-search () {
if (( CURRENT == 2 )); then
_message "search string"
return
fi
CURRENT=$(( $CURRENT - 1 ))
_git-log
}
_git-search "$@"
编辑:此外,要实际使用您新定义的完成文件,您必须将存储它们的目录添加到 fpath
关于git - 添加新的 zshell 命令行自定义 git 补全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8260398/