zsh的PS1中的换行符是什么?

zsh的PS1中的换行符是什么?

我正在尝试为 zsh 设置多行 PS1,但\n没有被 zsh 解析,

PS1="%~\n %> "

我应该如何设置?

答案1

使用$'\n'

例如,

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

或者

NEWLINE=$'\n'
PROMPT="firstline${NEWLINE}secondline "

答案2

PS1="firstline
secondline "

或者

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

取自常问问题,第 3.13 项

答案3

像这样(我知道,看起来很尴尬):

PS1="%~
 %> "

答案4

我知道这是一个老问题,但我也在寻找这个问题。如果您加载 prompinit ( autoload -Uz promptinit && promptinit),您将免费获得该选项:$prompt_newline$'\n%{\r%}'

/usr/share/zsh/functions/Prompts/promptinit在 Debian 系统上,您可以在和/或中找到源代码https://github.com/zsh-users/zsh/blob/master/Functions/Prompts/promptinit

相关内容