1

我已将目录分配给 .zshrc 文件中的变量,如下所示:

export DOTFILES=$HOME/.dotfiles

~DOTFILES现在,当我在.dotfiles目录中时,我的 zsh 提示符会读取。我做了一些研究(在这个线程中:Variable names in prompt 而不是 path),发现 zsh 有一个AUTO_NAME_DIRS选项可以做到这一点。

我试过unsetopt AUTO_NAME_DIRS了,但我的 zsh 提示符仍然显示变量名而不是路径。我运行了unsetopt命令,发现它autonamedirs确实在未设置的选项列表中。我还跑来setopt确保它不在设置选项列表中,但它不在。

有想法该怎么解决这个吗?

4

1 回答 1

1

将其视为创建在变量设置时触发的命名目录的挂钩。

因此,如果auto_name_dirs设置了参数并且您设置了一些值% TMP=/tmp,它还将创建一个命名目录以供/tmp使用TMP。如果您稍后取消设置该参数,则目录名称将保留。如果您创建了许多未设置的变量% USER=/usrauto_name_dirs并且在设置选项之后,将不会发生目录命名。

~ % 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
于 2013-06-14T08:40:19.140 回答