【问题标题】:cygwin terminal prompt color causes havoccygwin 终端提示颜色导致破坏
【发布时间】:2014-07-07 04:50:14
【问题描述】:

我很抱歉,因为这不是一个真正的程序员问题(当我的 bash 脚本需要更改提示颜色时,它会变成一个问题),但是自从我开始在 Cygwin 上测试我的代码以来,这种不便一直困扰着我。当我键入一个带有很多参数的很长的命令行时,它会在 61 个字符后中断到下一行,而不是在行尾(在我的例子中是 80 个),正如你所期望的那样。当您使用退格键、home、end 或左/右箭头键时,光标不会按应有的方式移动。此外,如果您的命令历史记录中的先前命令之一很长(超过 61 个字符),则在到达该命令后按向上箭头键将产生一个乱码。我首先认为这是 Cygwin 中的一个错误并试图忽略它。经过一些(很长的)研究,我发现问题出在我的个人资料文件中,进一步研究表明问题是由我的提示着色引起的。

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

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

但这很好用(除了颜色不对):

PS1="\w> "

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

【问题讨论】:

    标签: bash colors terminal cygwin prompt


    【解决方案1】:

    我很早之前就想到了这个,所以我不能准确地解释它,但它需要是这样的:

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

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

    【讨论】:

    • 非常感谢!请问你是怎么想出来的?
    • @Ulrik 我不记得我在哪里遇到了那个花絮,但这里有一个不同的来源:mywiki.wooledge.org/BashFAQ/053。如果您觉得我的回答有用,请记得接受并投票。
    猜你喜欢
    • 2014-02-07
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    相关资源
    最近更新 更多