我通过Homebrew安装了git。我通过安装在
中的脚本获得命令行补全/usr/local/etc/bash_completion.d/
然而,我希望我的自定义git-*脚本也完成。
我如何将这个附加到现有的git完成?
我给你举几个例子。
- 为别名添加补全
如果你有一个像这样的别名:
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