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