参数中带有空格的Zsh相关补全

参数中带有空格的Zsh相关补全,zsh,zsh-completion,Zsh,Zsh Completion,我试图实现一个函数的完成,其中第二个参数的完成取决于第一个参数 功能测试_so(){ 回显“$1”“$2” } 函数_test_so(){ 地方政府 _参数“1::->arg1”2::->arg2 案例$state arg1)compadd foo'bar baz';; arg2) echo”-第一个参数:${words[2]}- 如果[${words[2]}=='bar baz']];则 compadd bar-1 bar-2 其他的 compadd foo-1 foo-2 fi ;; 以撒

我试图实现一个函数的完成,其中第二个参数的完成取决于第一个参数

功能测试_so(){
回显“$1”“$2”
}
函数_test_so(){
地方政府
_参数“1::->arg1”2::->arg2
案例$state
arg1)compadd foo'bar baz';;
arg2)
echo”-第一个参数:${words[2]}-
如果[${words[2]}=='bar baz']];则
compadd bar-1 bar-2
其他的
compadd foo-1 foo-2
fi
;;
以撒
}
compdef_test_so test_so
但是,对于带有空格的参数,它似乎在传递
${words[2]}
中的literal
\
&
'
s:

$test\u so foo…-第一个arg:foo-
foo-1
foo-2

$test_so bar\baz…-第一个arg:bar\baz-#您可以通过使用以下命令“取消引用”单词来摆脱
\

现在,命令行上的
bar\baz
'bar baz'
将在代码中生成相同的字符串:
bar baz

${(Q)words[2]}