iTerm ZSH - Fehlende rechte Eingabeaufforderung

Ich verwende oh-my-zsh und iTerm2. Ich habe auch das Plugin zsh-vim-mode von oh-my-zsh aktiviert. Einer der Ärgernisse, auf die ich gestoßen bin, ist, dass meine rechte Eingabeaufforderung (RPS1 & RPROMPT) nicht angezeigt wird. Ich möchte, dass es anzeigt, in welchem ​​Vim-Modus ich mich gerade befinde.

Ich verwende das Robbyrussel-Theme. Es scheint, dass meine Variable $RPS1 gesetzt ist. Ich frage mich, ob es eine Konfigurationsoption gibt, die ich vermisse.


Ich arbeite mit 10.7.

Gleiches Problem in 10.8.

Was ist in Ihrem $RPS1?
Könnten Sie bitte Ihre .zshrc anhängen?

Antworten (3)

Versuchen Sie, Ihr RPROMPT in einfache Anführungszeichen zu setzen. Ich habe schon früher gesehen, dass doppelte Anführungszeichen bei anderen Probleme mit ihren Eingabeaufforderungen verursachen.

Ich würde auch den Prozess precmd > setprompt für den Moment fallen lassen und einfach RPROMPT direkt setzen, um das Testen zu vereinfachen. Beginnen Sie mit etwas wie

precmd() {
  ...
}
PROMPT=$'\n$(rb_prompt) in $(directory_name) $(git_dirty)$(need_push)\n› '
RPROMPT='%{$fg_bold[cyan]%}$(todo)%{$reset_color%}'

und von dort verfeinern.

Nachdem ich nachgeforscht habe, habe ich ein paar Dinge gefunden, die das behoben haben:

  1. Ich hatte einige oh-my-zsh-Plugins, die RPS1 anstelle von RPROMPT eingestellt haben - es scheint, dass beide Einstellungen dazu führten, dass keines der beiden angezeigt wurde.
  2. Das Setzen von RPROMPT in precmd führte auch dazu, dass es verschwand.

Stellen Sie sicher, dass $RPS1 oder $RPROMPT nicht in einem Ihrer Plugins definiert ist. Beispielsweise vi-modedefiniert das Plugin $RPS1 innerhalb einer ifAnweisung. Deaktivieren Sie zum Testen ALLE Plugins in Ihrem .zshrcund sehen Sie, ob das die Dinge behebt.