【问题标题】:zsh prompt uses variables names (despite unsetting AUTO_NAME_DIRS)zsh 提示使用变量名称(尽管取消设置 AUTO_NAME_DIRS)
【发布时间】:2013-06-14 01:49:12
【问题描述】:

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

export DOTFILES=$HOME/.dotfiles

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

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

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: terminal zsh zshrc


    【解决方案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
    

    【讨论】:

    • 感谢您的精彩插图 - 它确实帮助我缩小了解决方案的范围(详情见上文)。
    猜你喜欢
    • 2017-04-10
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 2016-12-20
    相关资源
    最近更新 更多