OPTPASE应用程序zsh完成脚本期间compadd失败
所以我不确定这是否是optparse应用程序的脚本出了问题,还是我用错了 在optparse应用程序中,它声明程序可以使用自动完成脚本,并带有zsh选项。对于我的程序OPTPASE应用程序zsh完成脚本期间compadd失败,zsh,zshrc,zsh-completion,optparse-applicative,Zsh,Zshrc,Zsh Completion,Optparse Applicative,所以我不确定这是否是optparse应用程序的脚本出了问题,还是我用错了 在optparse应用程序中,它声明程序可以使用自动完成脚本,并带有zsh选项。对于我的程序设置: $> setup --zsh-completion-script `which setup` 产出: #compdef setup local request local completions local word local index=$((CURRENT - 1)) request=(--bash-com
设置
:
$> setup --zsh-completion-script `which setup`
产出:
#compdef setup
local request
local completions
local word
local index=$((CURRENT - 1))
request=(--bash-completion-enriched --bash-completion-index $index)
for arg in ${words[@]}; do
request=(${request[@]} --bash-completion-word $arg)
done
IFS=$'\n' completions=($( /Users/anrothan/.local/bin/setup "${request[@]}" ))
for word in $completions; do
local -a parts
# Split the line at a tab if there is one.
IFS=$'\t' parts=($( echo $word ))
if [[ -n $parts[2] ]]; then
if [[ $word[1] == "-" ]]; then
local desc=("$parts[1] ($parts[2])")
compadd -d desc -- $parts[1]
else
local desc=($(print -f "%-019s -- %s" $parts[1] $parts[2]))
compadd -l -d desc -- $parts[1]
fi
else
compadd -f -- $word
fi
done
我在我的zshrc中运行以下内容(我使用了oh my zsh,但我删除了它,这仍然发生在一个简单的最小配置中,只有一个小的路径添加才能获得设置
脚本)
自动加载-U+X compinit&&compinit
自动加载-U+X bashcompinit&&bashcompinit
source您不需要为zsh完成脚本编写源代码,只需要将它们添加到fpath参数中
因此,只需将setup--zsh completion script$(哪个设置)
的输出放在\u setup
的$HOME/.config/zsh/completions
文件调用中即可
fpath=($HOME/.config/zsh/completions $fpath)
autoload -U compinit && compinit
看起来你的格式可能被弄乱了。您是否介意重新评估它,并确保内联代码引用标记有反勾号
?
fpath=($HOME/.config/zsh/completions $fpath)
autoload -U compinit && compinit