【发布时间】:2018-07-16 01:33:00
【问题描述】:
我正在尝试关注Make zsh complete arguments from a file,但有一个命令。应该没什么大不了的。
在/usr/local/share/zsh/site-functions/_foo我有
#compdef foo
aliases=($(a complicated command here printing everything twice))
_describe aliases aliases
单独运行的命令会打印以下内容:
foo foo bar bar this this that that
这似乎创建了一个关联数组就好了。当我在_describe aliases aliases 命令之前添加echo ${(kv)aliases} 并运行/usr/local/share/zsh/site-functions/_foo 我得到了
foo foo bar bar this this that that
当我只是做${(k)aliases} 然后
foo bar this that
我并没有真正的描述,所以这对我有用。但是,它不适用于 zsh。
我加了
function foo() { echo $* }
autoload _foo
compdef _foo foo
到~/.zshrc 和. ~/.zshrc 之后,当我输入foo [tab] 时,我得到_foo:2: bad set of key/value pairs for associative array。我尝试将命令更改为只打印一次所有内容。结果相同。我尝试将命令更改为为每个 foo 打印 "foo:x "。结果相同。那么我的程序应该产生什么才能让它工作呢?
【问题讨论】:
标签: zsh zsh-completion