我有一个随机的问题,我个人觉得这很烦人。我经常使用终端并安装了一个主题,甚至玩弄了提示上显示的内容。但是,如果我写了一行特别的文本,它不会在终端中开始新的一行,而是会开始覆盖当前终端行中屏幕上显示的内容。我想知道是否有人知道解决此问题的方法,以便它确实显示一个新行并且所有输入都可见。
PS1 值
export PS1="\r\n\e[1;32mdave:\w $\e[0;37m "
好吧,感谢@Joni 的帖子,我相信解决方案是:
PS1="\r\n\[\e[1;32m\]dave:\w $\[\e[0;37m\] "
也就是说,这里的颜色代码\e[1;32m
and\e[0;37m
包含在\[
and\]
中,正如@Joni 建议的那样。
非打印字符,如颜色的转义码,必须用 \[ 和 \] 包围,以便 bash 在计算行长时知道将它们排除在外。
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/nonprintingchars.html