Standardaufforderung für Zsh in Ubuntu

2503
Léo Léopold Hertz 준영

Wie können Sie die Eingabeaufforderung "/ home / user @ address: / path" für Zsh erhalten?

Ich führe die folgenden erfolglos in meiner .zshrc aus

PROMPT='%d%>:%{\e[0m%} ' 

Ich bekomme meine Aufforderung

/home/masi 
2
Ihre Anfrage ist sehr verwirrend. Wie setzt sich / home / user @ address: / path aus Teilen zusammen, die aktualisiert werden? / home / user ist eine Pfadadresse ist ... meinst du host? und / path ist wieder ein Pfad. dlamblin vor 15 Jahren 0

2 Antworten auf die Frage

4
Chris Johnsen

Dies kann Ihnen geben, was Sie wollen ( Benutzer @ Host : Pfad ):

PROMPT=$'%n@%m:%d%{\e[0m%} ' 

Wenn Sie die Länge des Pfads ( %>aus Ihrem Beispiel) begrenzen möchten, beschränken Sie ihn auf die Anzeige der letzten 12 Zeichen wie folgt :

PROMPT=$'%n@%m:%12<...<%d%<<%{\e[0m%} ' 

Wenn Sie den eingebetteten Escape-Code nicht wirklich gewünscht haben (dies ist ein typischer VT100-Stilbefehl zum Löschen aller fetten / etc-Formatierungen), könnten Sie ihn folgendermaßen vereinfachen:

PROMPT='%n@%m:%12<...<%d%<< ' 
Was ist der Zweck des Dollarzeichens vor 'in Ihren ersten beiden Befehlen? Léo Léopold Hertz 준영 vor 15 Jahren 0
Siehe den Abschnitt "Zitieren" von "man zshmisc". Es verarbeitet Escape-Sequenzen. Versuchen Sie es mit "echo" \ e [0m "" und dann noch einmal mit dem Dollarzeichen. Pfeifen Sie jede durch "hd", um den Unterschied deutlicher zu sehen. Dennis Williamson vor 15 Jahren 2
Was ist der Zweck der Pipes jedes "hd"? - Es scheint mir eine hexadezimale Ausgabe zu geben. Wenn ich die Anzahl der Dollarzeichen in der Größenordnung von zwei erhöhe, bekomme ich eine andere Ausgabe. Léo Léopold Hertz 준영 vor 15 Jahren 0
Wenn Sie `echo` verwenden, sehen Sie nur einen Unterschied, wenn die Option` BSD_ECHO` aktiviert ist. `echo '\ e' | hd` zeigt die Sequenz "5c 65"; `echo $ '\ e' | hd` zeigt '1b'. Die Verwendung von "$" ... "" stellt sicher, dass "\ e" immer ** ist.**, und nicht **** + ** e **. Siehe wirklich `zshmisc (1 )` unter Quoting. Chris Johnsen vor 15 Jahren 0
2
dlamblin

In diesem Fall kann das Handbuch sehr hilfreich sein.

Ich vermute, Sie wollen so etwas wie:
PROMPT='$HOME@%M:%3~ '

Anscheinend ist das Lesen der 4 Sätze in der kurzen Handbuchseite zu viel Arbeit. Vielleicht weil es ein Link ist:

13. Sofortige Erweiterung  13.1 Erweiterung von Prompt-Sequenzen  Prompt-Sequenzen unterliegen einer besonderen Form der Erweiterung. Diese Art der Erweiterung ist auch mit der Option -P verfügbar zum Druckeinbau  Wenn die Option PROMPT_SUBST gesetzt ist, ...  In der Eingabeaufforderungszeichenfolge können bestimmte Escape-Sequenzen erkannt werden.  Wenn die Option PROMPT_BANG gesetzt ist, ...  Wenn die Option PROMPT_PERCENT gesetzt ist, ...  13.2 Einfache Eingabeaufforderungen  13.2.1 Sonderzeichen  %% Ein "%".  %) A ")".  13.2.2 Anmeldeinformationen  % l Die Linie (tty) ...  % M Der vollständige Hostname der Maschine.  % m Der Hostname bis zum ersten ".". Eine ganze Zahl kann dem% folgen, um anzugeben Wie viele Komponenten des Hostnamens sind erwünscht? Mit einer negativen ganzen Zahl Nachfolgende Komponenten des Hostnamens werden angezeigt.  % n $ USERNAME.  % y Die Linie (tty) ...  13.2.3 Shell-Status  % # Ein '#' wenn die Shell mit Privilegien läuft, ...  % Der Rückgabestatus ...  % _ Der Status des Parsers, ...  % d % / Vorhandenes Arbeitsverzeichnis ($ PWD). Wenn eine Ganzzahl auf das% folgt, dann gibt eine Anzahl von nachlaufenden Komponenten von $ PWD an, die angezeigt werden sollen; Null bedeutet der ganze Weg Eine negative ganze Zahl gibt führende Komponenten an. dh% -1d gibt die erste Komponente an.  % ~ Wie% d und% /, aber wenn $ PWD ein benanntes Verzeichnis als Präfix enthält, ist dieser Teil wird durch ein ~ ersetzt, gefolgt vom Namen des Verzeichnisses. Wenn es anfängt Bei $ HOME wird dieser Teil durch ein "~" ersetzt.  % h %! Nummer des aktuellen Verlaufsereignisses  %ich Die Zeilennummer ...  %ICH Die Zeilennummer ...  % j Die Anzahl der Jobs.  % L Der aktuelle Wert von $ SHLVL.  % N Der Name des Skripts, ...  % x Der Name der Datei ...  % c %. % C Trailing-Komponente ... Diese sind veraltet ... entsprechend% 1 ~ und% 1 / ...  13.2.4 Datum und Uhrzeit ... ignoriert ...  13.2.5 Visuelle Effekte ... werden ignoriert ...  13.3 Bedingte Teilzeichenfolgen in Eingabeaufforderungen ... Möglicherweise nützlich, aber ignoriert ...  
Was ist der Zweck von ´3´ in ´% 3 ~ ´? Der Befehl scheint auch ohne zu funktionieren. Léo Léopold Hertz 준영 vor 15 Jahren 0
Es werden nur die untersten drei Verzeichnisebenen des aktuellen Verzeichnisses (PWD) angezeigt. Versuchen Sie `cd / usr / share / doc / zsh` - die Eingabeaufforderung zeigt nur" share / doc / zsh "an. Dennis Williamson vor 15 Jahren 1
Sie sehen das blaue Wort, das dort "manuell" heißt. Es erzählt alles über jede mögliche Variation. Aber, und ich weiß, dass dies eine Strecke ist, müssen Sie darauf klicken. Mit deiner Maus dlamblin vor 15 Jahren 0