我通过Homebrew安装了git。我通过
中安装的脚本获得命令行完成/usr/local/etc/bash_completion.d /
但是我希望我的自定义git- *脚本也可以完成。
我如何解决现有的git完成问题?
答案 0 :(得分:3)
我会举几个例子。
如果您有像这样的拉动别名:
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
的copmletion,只需进行一些小修改:您希望先完成搜索字符串,然后使用git-log
的常用选项。然后你可以使用它:
_git-search () {
if (( CURRENT == 2 )); then
_message "search string"
return
fi
CURRENT=$(( $CURRENT - 1 ))
_git-log
}
_git-search "$@"
编辑:另外,要实际使用新定义的完成文件,您必须将存储它们的目录添加到fpath