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

dai*_*isy 57 zsh

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

PS1="%~\n %> "

我应该如何设置?

小智 66

$'\n'

例如,

PROMPT="firstline"$'\n'"secondline "
Run Code Online (Sandbox Code Playgroud)

或者

NEWLINE=$'\n'
PROMPT="firstline${NEWLINE}secondline "
Run Code Online (Sandbox Code Playgroud)

  • 使用 NEWLINE 可以更轻松地编辑提示 (3认同)
  • @迪迪埃A。PROMPT 和 PROMPT2-4 分别是 PS1-4 的别名,但 PROMPT 别名“当 shell 在 sh 或 ksh 模拟模式下初始化时不存在”。 (3认同)
  • PS1 和 PROMPT 变量有什么区别? (2认同)

小智 31

PS1="firstline
secondline "
Run Code Online (Sandbox Code Playgroud)

或者

PS1=$'Hi Joe,\nwhat now?%# '
Run Code Online (Sandbox Code Playgroud)

取自常见问题解答,第 3.13 项

  • 这可能会导致问题。请参阅链接。https://superuser.com/questions/382503/how-can-i-put-a-newline-in-my-zsh-prompt-without-causing-terminal-redraw-issues (2认同)

Ema*_*erg 3

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

PS1="%~
 %> "
Run Code Online (Sandbox Code Playgroud)