Was ist das Newline-Symbol in zshs PS1?

34

Ich versuche, eine mehrzeilige PS1 für zsh einzurichten, wurde aber \nnicht von zsh analysiert.

PS1="%~\n %> "

Wie soll ich es einrichten?

Gänseblümchen
quelle

Antworten:

32

Verwenden $'\n'

Beispielsweise,

PROMPT="firstline"$'\n'"secondline "

oder

NEWLINE=$'\n'
PROMPT="firstline${NEWLINE}secondline "
n5c
quelle
Arbeitete genau so, wie ich es auch brauchte.
Justin
1
Mit NEWLINE ist es viel einfacher, die Eingabeaufforderung zu bearbeiten
cmcginty
Was ist der Unterschied zwischen der PS1- und der PROMPT-Variablen?
Didier A.
@DidierA. PROMPT und PROMPT2-4 sind Aliase von PS1-4, mit der Ausnahme, dass die PROMPT-Aliase "[nicht] vorhanden sind, wenn die Shell im sh- oder ksh-Emulationsmodus initialisiert wird".
Victor
28
PS1="firstline
secondline "

oder

PS1=$'Hi Joe,\nwhat now?%# '

Entnommen aus FAQ , Punkt 3.13

int
quelle
1
Dies kann zu Problemen führen. Siehe den Link. superuser.com/questions/382503/…
fx-kirin
1

So (ich weiß, sieht umständlich aus):

PS1="%~
 %> "
Emanuel Berg
quelle
-1

Ich weiß, das ist eine alte Frage, aber ich habe auch danach gesucht. Wenn Sie prompinit ( autoload -Uz promptinit && promptinit) laden, erhalten Sie die Option kostenlos: $prompt_newlinedas ist $'\n%{\r%}'.

Auf einem Debian-System finden Sie den Quellcode unter /usr/share/zsh/functions/Prompts/promptinitund / oder https://github.com/zsh-users/zsh/blob/master/Functions/Prompts/promptinit

waterkip
quelle