我正在为zsh编写一个自动完成脚本,我想在某些条件下启用nospace。 bash等效脚本看起来像这样
_my_completion(){
if something; then
compopt -o nospace
fi
}
complete -F _my_completion <exec>
如何在zsh中实现相同的目标?
答案 0 :(得分:0)
使用-S ''
作为compadd
参数可以达到类似的效果,如您所见:
_my_completion(){
# Here you can access ${words[@]}, $BUFFER, $CURSOR, $NAME, $CURRENT...
if something; then
completions_array=(foo bar baz)
# `-S ''` is the equivalent of `compopt -o nospace`
compadd -S '' -a completions_array
fi
}
compdef _my_completion <exec>
如果您熟悉bash补全,可以在this script that loads the bash completions in ZSH中看到zsh补全的比较。