Подсказка ZSH: путь, за исключением текущего каталога

Подсказка ZSH: путь, за исключением текущего каталога

Может ли zsh задать приглашение на полный путькрометекущий dir? Т.е. для ~/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}'

Та-дам!

Документация:

Связанный контент