vcs_info, richtige config in zsh?

1098
Not Available

Ich habe vor kurzem zsh installiert und mir die Zeit genommen, es richtig zu konfigurieren.

setopt prompt_subst Verwenden Sie prompt_subst, um die Variablen vcs_info zu verwenden, die während der Laufzeit aktualisiert werden.

Es funktioniert mit Farben und sollte nichts kaputt machen, wenn versucht wird, die PS1 zu modifizieren. aber ich scheine nicht herauszufinden, was die Nachteile für die Aktivierung sind?

psvar Verwenden Sie eine psvar-Funktion, um die Befehlszeile zu ersetzen, funktioniert aber die Farben.

Aktualisieren Sie PS1 alle Precmd-Dateien . Könnte mit Hacks behoben werden, aber es ist zu hässlich / fragil IMO, also überspringen Sie diese.

-

Um es zusammenzufassen:

  1. Welche Nachteile gibt es, wenn prompt_subst aktiviert ist?
  2. Gibt es eine Möglichkeit, die Farben mit psvar arbeiten zu lassen

Wenn prompt_subst erhebliche Nachteile hat, wäre 2 die beste Alternative, wenn 3 alles möglich ist, 3 ist ein bisschen zerbrechlich, also lieber nicht verwenden.

Der relevante Teil meiner .zshrc

...  autoload -Uz vcs_info  # Needs to be enabled for the prompt to change setopt prompt_subst  # Formats VCS_FORMAT="%{$fg_bold[magenta]%}(%{$reset_color%}%{$fg_bold[yellow]%}%b%{$reset_color%}" VCS_APPEND="%{$fg_bold[magenta]%})%{$reset_color%}" VCS_NORMAL_FORMAT="$%{$fg_bold[magenta]%}:%{$reset_color%}%{$fg_bold[green]%}%8.8i%{$reset_color%}$" VCS_ACTION_FORMAT="$%{$fg_bold[magenta]%}:%{$reset_color%}%{$fg_bold[red]%}%a%{$reset_color%}$"  zstyle ':vcs_info:*' enable git hg svn  zstyle ':vcs_info:*' get-revision true  zstyle ':vcs_info:*' formats $VCS_NORMAL_FORMAT  zstyle ':vcs_info:*' actionformats $VCS_ACTION_FORMAT  precmd () { vcs_info  PS1_STR="" PS1_STR="$%{$fg_bold[magenta]%}[%{$reset_color%}%{$fg_bold[green]%}%m%{$reset_color%}%{$fg_bold[magenta]%}]%{$reset_color%}" #hostname PS1_STR="$%{$fg_bold[magenta]%}[%{$reset_color%}%{$fg_bold[blue]%}%n%{$reset_color%}%{$fg_bold[magenta]%}]%{$reset_color%}" #user PS1_STR="$%{$fg_bold[magenta]%}[%{$reset_color%}%{$fg_bold[cyan]%}%1~%{$reset_color%}%{$fg_bold[magenta]%}]%{$reset_color%}" #folder PS1_STR="$$\$ " #branch/end }   export PS1='$'  ... 
1

0 Antworten auf die Frage