Ich habe gerade beschlossen, zsh (über oh-my-zsh) auszuprobieren, und spiele jetzt mit precmd
, um eine zweizeilige Eingabeaufforderung zu emulieren, die in mehr als nur der letzten Zeile die richtigen Eingabeaufforderungen enthält.
Also klone ich das Standardthema und inspiriere mich an diesem Beitrag (mit dem ich auch viel lerne). Ich mache so etwas (ich werde später Farben hinzufügen):
function precmd {
local cwd="${(%):-[%~]}"
local who_where="${(%):-%n@%m}"
local git_info=${(%)$(git_prompt_info)}
local right_prompt=" $git_info [$who_where]"
local left_prompt="${(r:(($COLUMNS - ${#${right_prompt}})):: :)cwd}"
echo "$left_prompt$right_prompt"
}
Und es funktioniert. Aber ich frage mich: Definiert zsh jedes Mal, wenn precmd aufgerufen wird, all diese Variablen?
Ich habe nach Abschlüssen, Umfang und Namespace in Bezug auf zsh gegoogelt und versucht, die lokalen Variablen als Daten an precmd anzuhängen, damit die Variablen nicht jedes Mal neu definiert werden müssen, aber ich habe nichts gefunden. Gibt es eine Möglichkeit, das zu tun, was ich versuche, oder sollte ich es einfach fallen lassen?
Als Randnotiz und nur wenn es verwandt ist, was bedeutet "eine Funktion laden lassen"?