我通过Homebrew安装了 git 。我通过安装在
/usr/local/etc/bash_completion.d/
但是,我也希望完成我的自定义 git-* 脚本。
我将如何将其添加到现有的 git 完成中?
我通过Homebrew安装了 git 。我通过安装在
/usr/local/etc/bash_completion.d/
但是,我也希望完成我的自定义 git-* 脚本。
我将如何将其添加到现有的 git 完成中?
我给你举几个例子。
如果您有这样的 pull 别名:
alias gp='git push'
然后您可以定义别名以使用与做相同的完成git-push
。
compdef _git gp=git-push
这是一个更艰难的。为zsh编写完成脚本并非易事,您可以查看此项目中的完成脚本以获得一些指导。例如,看一下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