我有一个随机问题,我个人觉得很刺激。我使用终端很多,并安装了一个主题,甚至玩弄提示中显示的内容。但是,如果我写了一行特定的文本,它不会在终端中开始新行,而会开始覆盖当前终端行中屏幕上显示的内容。我想知道是否有人知道解决这个问题的方法,以便它显示一条新线,并且所有输入都可见。终端输入无法开始新行
PS1值
export PS1="\r\n\e[1;32mdave:\w $\e[0;37m "
我有一个随机问题,我个人觉得很刺激。我使用终端很多,并安装了一个主题,甚至玩弄提示中显示的内容。但是,如果我写了一行特定的文本,它不会在终端中开始新行,而会开始覆盖当前终端行中屏幕上显示的内容。我想知道是否有人知道解决这个问题的方法,以便它显示一条新线,并且所有输入都可见。终端输入无法开始新行
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
和\e[0;37m
的内\[
和\]
封闭,如@Joni建议他们应该。
这对我感谢@janos! – David
非印刷字符,如用于彩色转义码,必须用\包围[和\],使得bash中知道计算线的长度时将它们排除在外。
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/nonprintingchars.html
+1 Nice!谢谢你,很高兴知道。 – janos
您定制的'PS1'变量的值是多少? – janos
export PS1 =“\ r \ n \ e [1; 32mdave:\ w $ \ e [0; 37m” – David