我已设置PS1
为以下值:
PS1="\033[0;37m[\033[1;33m\w\033[0;37m]\n\t \[[34m\]\u\033[0;37m@\[[34m\]\[[1m\]\h\[(B[m\] $"
问题是任何超过一行的命令都会循环并且不会生成新行。所以我覆盖了已经输入的行。有什么问题PS1
?
答案1
提示符中的非打印字符需要被\[
and包围\]
,这样 bash 才能正确跟踪提示符的长度并容纳超出终端边缘的行。
我已设置PS1
为以下值:
PS1="\033[0;37m[\033[1;33m\w\033[0;37m]\n\t \[[34m\]\u\033[0;37m@\[[34m\]\[[1m\]\h\[(B[m\] $"
问题是任何超过一行的命令都会循环并且不会生成新行。所以我覆盖了已经输入的行。有什么问题PS1
?
提示符中的非打印字符需要被\[
and包围\]
,这样 bash 才能正确跟踪提示符的长度并容纳超出终端边缘的行。