zsh AUTO_NAME_DIRS 不适用于 OSX 上的某些变量名称

1 zsh environment-variables macos

我的 OSX 10.8 上的 zsh 有一个奇怪的问题(使用 oh-my-zsh,我认为它为我设置了 AUTO_NAME_DIRS)。

通常,如果我通过 将环境变量设置到某个路径export SOME_VAR=/some/path,然后切换到该路径,我将~SOME_VAR在命令行提示符中显示。这在我的 Ubuntu 13.04 和 zsh 5.0.0 上运行良好。

但是,在我的 OSX 10.8 上,它仅适用于某些变量名称。例如,我的终端中的一些日志:

Last login: Fri Jul 26 10:22:15 on ttys000
sji@MacBook-Air:~% cd dev/test
sji@MacBook-Air:~/dev/test% export QEPY_PATH=`pwd`
sji@MacBook-Air:~/dev/test% export AEPY_PATH=`pwd`
sji@MacBook-Air:~/dev/test% export EEPY_PATH=`pwd`
sji@MacBook-Air:~/dev/test% export AAAAEPY_PATH=`pwd`
sji@MacBook-Air:~/dev/test% export AAAAEPY_PTH=`pwd` 
sji@MacBook-Air:~/dev/test% export AAAAEPY_PBTH=`pwd`
sji@MacBook-Air:~/dev/test% export AAAAEPY_PDTH=`pwd`
sji@MacBook-Air:~/dev/test% export AAAAEPY_PDDH=`pwd`
sji@MacBook-Air:~/dev/test% export AAAAEPY_PDIO=`pwd`
sji@MacBook-Air:~/dev/test% export AAAAEPY_PAT=`pwd` 
sji@MacBook-Air:~/dev/test% export AEPY_PAT=`pwd` 
sji@MacBook-Air:~AEPY_PAT%
Run Code Online (Sandbox Code Playgroud)

除了最后一个对我不起作用。一开始还以为是OSX上的zsh太旧了。但是我通过MacPorts升级到5.0.2后问题依旧。

我挣扎了一段时间,但仍然无法找到哪些变量名称可以接受哪些不可以接受的模式。

有人有什么想法吗?谢谢。

Phi*_*l P 5

%~扩展是用来尝试找到代表您所在位置的最简洁的方式,因为提示空间是宝贵的,没有一点说超过需要。

因此,zshexpn(1)静态命名目录一节中解释了如何使用引用目录的最短方式,以及打破联系的规则(支持命名目录)。

由于/dev/test是 9 个字符,并且~是 1 个字符,因此您的变量名称最多可以是 8 个字符,以便规则有利于使用该变量。