Antworten:
Um einen ähnlichen Effekt bash
, dass das ist , einschließlich ...
, try:
%(4~|.../%3~|%~)
Dies überprüft, ob der Pfad mindestens 4 Elemente lang ist ( %(4~|true|false)
) und druckt, falls dies zutrifft, einige Punkte mit den letzten 3 Elementen ( .../%3~
), andernfalls wird der vollständige Pfad gedruckt %~
.
Mir ist aufgefallen, dass bash
sich Pfade im Homeverzeichnis anscheinend unterschiedlich verkürzen, zum Beispiel:
~/.../some/long/path
Für einen ähnlichen Effekt möchten Sie möglicherweise Folgendes verwenden:
%(5~|%-1~/…/%3~|%4~)
Dadurch wird überprüft, ob der Pfad länger als 5 Elemente ist. In diesem Fall werden das erste Element ( %-1~
), einige Punkte ( /…/
) und die letzten 3 Elemente gedruckt . Es ist nicht genau das Gleiche wie Pfade, die sich nicht in Ihrem Ausgangsverzeichnis befinden. Sie haben auch das erste Element am Anfang, während bash
in diesem Fall nur Punkte gedruckt werden. So
/this/…/some/silly/path
Anstatt von
.../some/silly/path
Aber das muss nicht unbedingt schlecht sein.
PROMPT
Umgebungsvariablen in Ihrem verwenden .zprofile
, z. B .:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
und es besteht keine Notwendigkeit für export
interne Parameter wie PROMPT
.
Zusätzlich zu den anderen hier gegebenen Antworten können Sie auch %<
den Pfad auf eine bestimmte Anzahl von Zeichen kürzen . Ich finde dies der Verwendung vorzuziehen %<n>d
, da einzelne Pfadelemente an sich offensichtlich ziemlich lang sein können. Die Verwendung %<
ergibt eine weitaus vorhersehbarere maximale Aufforderungslänge.
Wenn Sie beispielsweise das Pfadelement mit tilde expansion ( %~
) nach links auf 15 Zeichen kürzen und entfernte Zeichen durch ersetzen möchten ..
, können Sie Folgendes tun:
PROMPT='%n@%m:%15<..<%~%<<%# '
Dies ist im Zsh-Handbuch unter Prompt Expansion direkt am Ende der Seite dokumentiert .
Sie können die %3d
sofortige Erweiterung verwenden :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
Die allgemeine Form lautet %d
: Wenn eine positive Ganzzahl folgt, d
werden die folgenden Komponenten für den aktuellen Pfad angegeben, der Mittelwert Null gibt den gesamten Pfad an, die negative Ganzzahl gibt den führenden Pfad an:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Siehe http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html oderman 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 ‘~’.
Also, um etwas Ähnliches zu bekommen PROMPT_DIRTRIM=3
, könnten Sie verwenden %3d
oder %3~
z
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
als.../a/b
statt zeigt~/a/b
. Um dies zu beheben, können Sie verwenden%(5~|…/%3~|%~)
.