Answers:
要获得类似的效果bash
,包括...
,请尝试:
%(4~|.../%3~|%~)
这将检查路径的长度是否至少为4个元素(%(4~|true|false)
),如果为true,则打印出最后3个元素(.../%3~
)的点,否则将打印完整路径%~
。
我注意到这bash
似乎以不同的方式缩短了主目录中的路径,例如:
~/.../some/long/path
为了达到类似的效果,您可能需要使用:
%(5~|%-1~/…/%3~|%4~)
这将检查路径是否长于5个元素,在这种情况下,将打印第一个元素(%-1~
),一些点(/…/
)和最后3个元素。它与路径并不完全相同,它们不在您的主目录中,也将以第一个元素开头,而bash
在这种情况下仅打印点。所以
/this/…/some/silly/path
代替
.../some/silly/path
但这不一定是一件坏事。
PROMPT
环境变量一起使用.zprofile
,例如:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
并且实际上不需要export
任何shell内部参数,例如PROMPT
。
参见http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html或man zshmisc
%d
%/
Current working directory. If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show
%~
As %d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.
因此,要获得类似于的信息PROMPT_DIRTRIM=3
,可以使用%3d
或%3~
,例如
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
为,.../a/b
而不是~/a/b
。要解决此问题,您可以使用%(5~|…/%3~|%~)
。