Respuestas:
Para obtener un efecto similar bash
, que incluye el ...
, intente:
%(4~|.../%3~|%~)
Esto verifica si la ruta tiene al menos 4 elementos de largo ( %(4~|true|false)
) y, si es verdadero, imprime algunos puntos con los últimos 3 elementos ( .../%3~
), de lo contrario se imprime la ruta completa %~
.
Noté que bash
parece acortar las rutas en el directorio de inicio de manera diferente, por ejemplo:
~/.../some/long/path
Para un efecto similar, es posible que desee utilizar:
%(5~|%-1~/…/%3~|%4~)
Esto comprueba si la ruta es más larga que 5 elementos, y en ese caso imprime el primer elemento ( %-1~
), algunos puntos ( /…/
) y los últimos 3 elementos. No es exactamente lo mismo que las rutas, que no están en su directorio de inicio, también tendrán el primer elemento al principio, mientras que bash
solo imprime puntos en ese caso. Entonces
/this/…/some/silly/path
en lugar de
.../some/silly/path
Pero esto podría no ser necesariamente algo malo.
PROMPT
variable de entorno en su .zprofile
, por ejemplo:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
y realmente no hay necesidad de export
ningún parámetro interno de shell como PROMPT
.
Además de las otras respuestas dadas aquí, también puede usar %<
para truncar la ruta a un número dado de caracteres . Considero que es preferible usarlo %<n>d
, ya que los elementos de ruta individuales obviamente pueden ser bastante largos en sí mismos. El uso %<
produce una longitud máxima de aviso mucho más predecible.
Por ejemplo, para truncar a la izquierda el elemento de ruta con tilde expansion ( %~
) a 15 caracteres, reemplazando los caracteres eliminados por ..
, puede hacer algo como esto:
PROMPT='%n@%m:%15<..<%~%<<%# '
Esto está documentado en el manual de Zsh en Expansión rápida , justo al final de la página.
Puede usar %3d
la expansión rápida :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
La forma general es %d
, si cualquier entero positivo siguiente d
especifica los componentes finales para mostrar la ruta actual, cero significa mostrar la ruta completa, entero negativo significa la ruta principal para mostrar:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Ver http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html oman 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 ‘~’.
Entonces, para obtener algo similar PROMPT_DIRTRIM=3
, podría usar %3d
o %3~
, por ejemplo,
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
como en.../a/b
lugar de~/a/b
. Para arreglar eso, puedes usar%(5~|…/%3~|%~)
.