如何在 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 的补全将正常工作,并会自动为您添加最后的 "