ZSH 提示:当前目录以外的路径

ZSH 提示:当前目录以外的路径

zsh 可以将提示符设置为整个路径吗除了当前目录?例如,对于~/a/b/c/只是~/a/b/

我正在尝试~/a/b/c通过左和右提示获得此结果:

c/: | ~/a/b/

与我当前重复的相反c

c/: | ~/a/b/c/

c如果目录名很长,重复会浪费空间。

在里面手动的我发现了除了我想要的东西之外的一切:

  • %-1~- 路径的第一个元素
  • %1~- 路径的最后一个元素

而不是除了最后一个之外的所有内容

如何做呢?

答案1

# Before printing each prompt string, apply substitutions to it.
setopt promptsubst

# $PWD is always equal to the present working dir.
# :h chops off the last item of the path.
# (D) substitutes the start of the path with a named dir, such as ~, if possible.
# Note that this string is in 'single quotes'!
RPS1='${(D)PWD:h}'

瞧!

文档:

相关内容