开发和维护bash和zsh的shell完井
我已经为命令行实用程序编写了bash完成。 我需要支持zsh。开发和维护bash和zsh的shell完井,bash,zsh,maintainability,tab-completion,Bash,Zsh,Maintainability,Tab Completion,我已经为命令行实用程序编写了bash完成。 我需要支持zsh。 保持bash和zsh完成的最佳/标准方法是什么? 我可以编写单独的zsh补全,但我不想为每个shell维护单独的补全 我可以在zsh()中使用bash completion,但我不想强制用户在安装过程中手动设置工具或修改他们的~/.zshrc 其他人将使用Homebrew/Linuxbrew安装此实用程序。我可以修改安装公式。以下代码可以作为bash和zsh的完成代码。 这是可行的,但不是理想的解决方案。小心使用 if [ ! -z
保持bash和zsh完成的最佳/标准方法是什么? 我可以编写单独的zsh补全,但我不想为每个shell维护单独的补全 我可以在zsh()中使用bash completion,但我不想强制用户在安装过程中手动设置工具或修改他们的
~/.zshrc
其他人将使用Homebrew/Linuxbrew安装此实用程序。我可以修改安装公式。以下代码可以作为bash和zsh的完成代码。
这是可行的,但不是理想的解决方案。小心使用
if [ ! -z "$ZSH_NAME" ]; then
# zsh sets $ZSH_NAME variable so it can be used to detect zsh
# following enables using bash-completion under zsh
autoload bashcompinit
bashcompinit
fi
_example() {
# arbitrary bash-completion function
local cur prev
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${prev} == example ]] ; then
COMPREPLY=( $(compgen -W "--help --something" -- ${cur}) )
else
COMPREPLY=()
fi
return 0
}
# you can use complete builtin in both bash and zsh now
complete -F _example example