Wie kann ich die Farbe meiner prompt in zsh (unterscheiden sich von normalen Text) ändern?

StackOverflow https://stackoverflow.com/questions/689765

  •  22-08-2019
  •  | 
  •  

Frage

besser Um den Start zu erkennen und das Ende der Ausgabe auf einer Kommandozeile, mag ich die Farbe meiner Aufforderung ändern, so dass es sichtbar verschieden von den Programmen ausgegeben wird. Wie ich zsh verwenden, kann mir jemand einen Tip geben?

War es hilfreich?

Lösung

Hier ist ein Beispiel dafür, wie ein rotes prompt zu setzen:

PS1=$'\e[0;31m$ \e[0m'

Die Magie ist der \e[0;31m (auf roten Vordergrund drehen) und \e[0m (ausschalten Charakter-Attribut). Diese werden Escape-Sequenzen genannt. Verschiedene Escape-Sequenzen geben Sie unterschiedliche Ergebnisse, von der absoluten Cursorpositionierung, Farbe, zu der Möglichkeit, die Titelleiste des Fensters zu ändern, und so weiter.

Weitere Informationen über die Escape-Sequenzen, den Wikipedia-Eintrag auf ANSI-Escape-Codes siehe

Andere Tipps

Setzen Sie diese in ~/.zshrc:

autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "

Unterstützte Farben:
Rot, Blau, Grün, Cyan, Gelb, Magenta, Schwarz-Weiß (von dieser beantworten ), obwohl verschiedene Computer verschiedene gültige Optionen haben können.

Surround-Farbcodes (und alle anderen nicht druckbare Zeichen) mit %{....%}. Dies ist für den Textumbruch korrekt zu arbeiten.

Darüber hinaus ist hier, wie Sie diese bekommen können mit dem Verzeichnis-Trimmen von hier arbeiten.

PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "

Zsh kommt mit farbigen Aufforderungen gebautet. Versuchen

autoload -U promptinit && promptinit

und dann prompt -l Listen zur Verfügung Aufforderungen, -p fire Vorschauen des "Feuer" prompt, -s fire setzt es.

Wenn Sie bereit sind, eine Eingabeaufforderung hinzufügen hinzuzufügen etwas wie dies unter der Autoload Linie über:

prompt fade red

Das glaube ich nicht die autoload -U colors && colors benötigen mehr und man kann einfach tun:

PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "

das gleiche Ergebnis wie FireDude Antwort . Sehen Sie sich die ZSH Dokumentation für weitere Informationen.

Ich habe festgestellt, dass mit zsh5 (der Standard eines auf Debian Jessie), all diese Lösungen funktionieren:

  • $'\e[00m
  • $fg[white]
  • $fg{white}

Nun haben sie ein Problem: sie werden den Cursor bewegen, in hässlichen Aufkleber führt, wenn (für die automatische Vervollständigung) Tabbing. Die Lösung ist einfach die Escape-Sequenzen mit %{FOOBAR%} zu umgeben. Dauerte eine Weile, diese Figur. Für 2. und 3. Lösungen Laden colors Modul ist obligatorisch. Um die erste Lösung lesbar zu halten, nur definieren Variablen für die Farben, die Sie verwenden.

Mann zshall und Suche nach PROMPT EXPANSION

Nachdem die vorhandenen Antworten lesen hier, einige von ihnen sind widersprüchlich. Ich habe die verschiedenen Ansätze auf Systemen versucht, läuft zsh 4.2 und 5+ und fanden heraus, dass der Grund, warum diese Antworten sind widersprüchlich ist, dass sie nicht sagen, welche Version von ZSH sie ausgerichtet sind. Verschiedene Versionen verwenden unterschiedliche Syntax für diese und einige von ihnen erfordern verschiedene autoloads.

Also, ist die beste Wette wahrscheinlich zshall für Menschen und für PROMPT EXPANSION Sucht alle Regeln für Ihre spezielle Installation von zsh zu erfahren. Hinweis in den Kommentaren, Dinge wie „Ich verwende Ubuntu 11.04 oder 10.4 oder OSX“ nicht sehr sinnvoll, da es unklar ist, welche Version von ZSH Sie verwenden. Ubuntu 11.04 nicht eine neuere Version von ZSH als ubuntu 10.04 impliziert. Es kann eine beliebige Anzahl von Gründen, die eine ältere Version installiert wurde. Was das betrifft eine neuere Version von ZSH bedeutet nicht, die Syntax zu verwenden, ohne zu wissen, welche Version von ZSH es ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top