Risposte:
Per ottenere un effetto simile bash
, incluso quello ...
, prova:
%(4~|.../%3~|%~)
Controlla se il percorso è lungo almeno 4 elementi ( %(4~|true|false)
) e, se vero, stampa alcuni punti con gli ultimi 3 elementi ( .../%3~
), altrimenti viene stampato il percorso completo %~
.
Ho notato che bash
sembra abbreviare i percorsi nella directory home in modo diverso, ad esempio:
~/.../some/long/path
Per un effetto simile, potresti voler usare:
%(5~|%-1~/…/%3~|%4~)
Controlla se il percorso è più lungo di 5 elementi e in tal caso stampa il primo elemento ( %-1~
), alcuni punti ( /…/
) e gli ultimi 3 elementi. Non è esattamente lo stesso dei percorsi, che non si trovano nella tua home directory, avrà anche il primo elemento all'inizio, mentre bash
in quel caso stampa solo punti. Così
/this/…/some/silly/path
invece di
.../some/silly/path
Ma questa potrebbe non essere necessariamente una cosa negativa.
PROMPT
variabile d'ambiente nella propria .zprofile
, ad es .:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
e non c'è davvero bisogno di export
parametri interni della shell come PROMPT
.
Oltre alle altre risposte fornite qui, puoi anche utilizzare %<
per troncare il percorso di un determinato numero di caratteri . Trovo che questo sia preferibile all'uso %<n>d
, poiché i singoli elementi del percorso possono ovviamente essere piuttosto lunghi in se stessi. L'utilizzo %<
produce una lunghezza del prompt massima molto più prevedibile.
Ad esempio, per troncare a sinistra l'elemento del percorso con l'espansione tilde ( %~
) a 15 caratteri, sostituendo i caratteri rimossi con ..
, puoi fare qualcosa del genere:
PROMPT='%n@%m:%15<..<%~%<<%# '
Questo è documentato nel manuale di Zsh in Espansione rapida , proprio alla fine della pagina.
È possibile utilizzare l' %3d
espansione rapida :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
La forma generale è che %d
se un numero intero positivo segue d
specifica i componenti finali da mostrare del percorso corrente, zero significa che mostra l'intero percorso, numero intero negativo indica il percorso principale da mostrare:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Vedi 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 ‘~’.
Quindi, per ottenere qualcosa di simile a PROMPT_DIRTRIM=3
, è possibile utilizzare %3d
o %3~
, ad esempio
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
come.../a/b
anziché~/a/b
. Per risolvere questo, puoi usare%(5~|…/%3~|%~)
.