我的提示设置为以下内容:
PROMPT=%F{reset}[%F{blue}%2/%F{reset}]
它将两个父目录显示为
[foo/bar]
但是,当我位于$HOME
或某个目录深处时$HOME
,我希望提示显示为
[~]
[~/foo]
分别代替
[/Users/me]
[me/foo]
我尝试过像 Steve Losh 那样的方法collapse_pwd
(以及更简单的版本:${PWD/#$HOME/~}
文章中也提到)和其他类似的版本,但我失去了只能显示最后两个目录的灵活性。
我该如何修改上面的内容来处理$HOME
?我的 zsh 版本是zsh 5.0.0 (x86_64-apple-darwin12.0.0)
OS X 10.8.2
答案1
zsh
对此有内置支持。使用%2~
而不是%2/
.也可以看看%40<...<%~
另请参阅autonamedirs
选项:
$ l=/usr/local
$ PS1='%~$ '
~$ setopt autonamedirs
~$ cd /usr/local
~l$
(如果没有autonamedirs
,您仍然可以执行cd ~l
tocd
并/usr/local
显示提示~l
)。