Terminal zsh提示符使用变量名称(尽管未设置AUTO_NAME_DIRS)

Terminal zsh提示符使用变量名称(尽管未设置AUTO_NAME_DIRS),terminal,zsh,zshrc,Terminal,Zsh,Zshrc,我在.zshrc文件中为变量分配了一个目录,如下所示: export DOTFILES=$HOME/.DOTFILES 现在,当我在.DOTFILES目录中时,我的zsh提示符将读取~DOTFILES。我做了一些研究(在这篇文章中:),发现zsh有一个AUTO\u NAME\u DIRS选项,它可以做这件事 我尝试了unsetopt AUTO_NAME_DIRS,但是我的zsh提示符仍然显示变量名而不是路径。我运行了unsetopt命令,发现autonamedirs确实在unset选项列表中。我

我在.zshrc文件中为变量分配了一个目录,如下所示:

export DOTFILES=$HOME/.DOTFILES

现在,当我在
.DOTFILES
目录中时,我的zsh提示符将读取
~DOTFILES
。我做了一些研究(在这篇文章中:),发现zsh有一个
AUTO\u NAME\u DIRS
选项,它可以做这件事

我尝试了
unsetopt AUTO_NAME_DIRS
,但是我的zsh提示符仍然显示变量名而不是路径。我运行了
unsetopt
命令,发现
autonamedirs
确实在unset选项列表中。我还运行了
setopt
,以确保它不在set选项列表中,也不在set选项列表中


有没有办法解决这个问题

将其视为一个钩子,用于创建在变量设置时触发的命名目录。

因此,如果设置了
auto\u name\u dirs
参数,并且您设置了一些值
%TMP=/TMP
,它还将使用
TMP
/TMP
创建一个命名的dir。如果以后取消设置该参数,则目录名将保留。如果使用
auto\u name\u dirs
unset创建多个变量
%USER=/usr
,并在设置该选项后,将不会进行目录命名

~ % zsh -f
dhcp-193-107% setopt autonamedirs
dhcp-193-107% TMP=/tmp
dhcp-193-107% export PS1="dir-prompt %~ : "
dir-prompt ~ : cd /tmp
dir-prompt ~TMP : unset autonamedirs
dir-prompt ~TMP : cd /
dir-prompt / : cd /tmp
dir-prompt ~TMP : # see the dir name still exists
dir-prompt ~TMP : USER=/usr     
dir-prompt ~TMP : cd /usr
dir-prompt /usr : # no dir name for /usr
dir-prompt /usr : setopt autonamedirs
dir-prompt /usr : cd /
dir-prompt / : cd /usr
dir-prompt /usr : # still no dir name for /usr

将其视为一个钩子,用于创建在变量设置时触发的命名目录。

因此,如果设置了
auto\u name\u dirs
参数,并且您设置了一些值
%TMP=/TMP
,它还将使用
TMP
/TMP
创建一个命名的dir。如果以后取消设置该参数,则目录名将保留。如果使用
auto\u name\u dirs
unset创建多个变量
%USER=/usr
,并在设置该选项后,将不会进行目录命名

~ % zsh -f
dhcp-193-107% setopt autonamedirs
dhcp-193-107% TMP=/tmp
dhcp-193-107% export PS1="dir-prompt %~ : "
dir-prompt ~ : cd /tmp
dir-prompt ~TMP : unset autonamedirs
dir-prompt ~TMP : cd /
dir-prompt / : cd /tmp
dir-prompt ~TMP : # see the dir name still exists
dir-prompt ~TMP : USER=/usr     
dir-prompt ~TMP : cd /usr
dir-prompt /usr : # no dir name for /usr
dir-prompt /usr : setopt autonamedirs
dir-prompt /usr : cd /
dir-prompt / : cd /usr
dir-prompt /usr : # still no dir name for /usr

感谢伟大的插图-它真的帮助我缩小了解决方案的范围(详见上文)。感谢伟大的插图-它真的帮助我缩小了解决方案的范围(详见上文)。