如何在 zsh 中设置完成环境变量名称?

How to setup completion of environment variable names in zsh?

在 bash 中,当我尝试在双引号字符串中使用自动完成功能时,它起作用了:

例如

echo "My home directory is $HO<t>"
# expands to
echo "My home directory is $HOME"

但是当我在 zsh 中尝试同样的事情时,它什么也没做。

同时在字符串外工作:

echo My\ home\ directory\ is\ $HO<t>
# expands to
echo My\ home\ directory\ is\ $HOME

是否可以让它像bash一样工作?

Zsh 完成 has a bug 如果部分参数名称后跟 ".

,则参数名称的完成失败

作为解决方法,只需在按 Tab 之前从字符串中删除最后的 "。然后,Zsh 的补全就会正常工作,它会自动为你添加最后的 "