终端输入不会启动新行

时间:2013-07-14 09:55:19

标签: shell terminal

我有一个随机问题,我个人觉得很烦人。我使用终端很多,并安装了一个主题,甚至玩弄了提示上显示的内容。但是,如果我写一个特别的文本行,它不会在终端中开始新行,而是会开始覆盖当前终端行中屏幕上显示的内容。我想知道是否有人知道解决这个问题的方法,以便它确实显示一个新行并且所有输入都是可见的。

PS1值

export PS1="\r\n\e[1;32mdave:\w $\e[0;37m "

2 个答案:

答案 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