Mensaje ZSH: ruta excepto el directorio actual

Mensaje ZSH: ruta excepto el directorio actual

¿Puede zsh configurar el mensaje para toda la ruta?exceptoel directorio actual? Es decir, ¿para ~/a/b/c/simplemente ~/a/b/?

Estoy intentando obtener este resultado ~/a/b/ccon indicaciones izquierda y derecha:

c/: | ~/a/b/

a diferencia de mi duplicado actual c:

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

La duplicación desperdicia espacio si el cnombre del directorio es largo.

En elmanualEncontré todo lo demás de lo que quiero:

  • %-1~- el primer elemento del camino
  • %1~- el último elemento del camino

en lugar de todos excepto el último

¿Cómo puede hacerse esto?

Respuesta1

# 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}'

¡Ta-da!

Documentación:

información relacionada