cygwin终端提示颜色导致破坏

时间:2014-07-07 04:50:14

标签: bash colors terminal cygwin prompt

我很抱歉,因为这不是一个程序员问题(当我的bash脚本需要更改提示颜色时它会变成一个),但是自从我开始在Cygwin上测试我的代码以来,这种不便一直困扰着我。当我输入一个包含大量参数的非常长的命令行时,它会突破到61个字符之后的下一行,而不是在行的末尾(在我的情况下为80),正如您所期望的那样。使用退格键,主页,结束键或左/右箭头键时,光标不会按原样移动。此外,如果命令历史记录中的某个先前命令很长(超过61个字符),则在到达该命令后按向上箭头键将产生一个加扰行。我首先虽然这是Cygwin中的一个错误并试图忽略它。经过一些(很长时间)的研究,我发现问题出在我的个人档案文件中,进一步的研究表明问题是由于我的提示着色造成的。

显然,这是所有麻烦的原因:

PS1="\e[0;32m\w> \e[1;32m"

但这种方法很好(除了它的颜色错误):

PS1="\w> "

任何想法可能是什么问题?我在这里做错了吗?

1 个答案:

答案 0 :(得分:3)

我刚才想到这个,所以我无法解释它,但它需要像这样:

PS1='\[\e[0;32m\]\w> \[\e[1;32m\]'

基本上,您需要使用\[\]包围转义序列。