在终端中设置颜色会导致奇怪的字符行限制

时间:2011-09-25 02:28:23

标签: macos terminal command-line iterm

我在给终端的提示着色时发现了一个恼人的错误。如果我将提示设置为彩色提示,例如

export PS1='\e[1;34m[\e[0;31m\D{%Hh%M} \e[0;32m\u\e[0m@\e[0;35m\h\e[0m:\e[0;36m\w\e[1;34m]\e[0m $ '

然后当我在输入行中获得一些大小时它会开始中断:

enter image description here

换句话说,当我的线路达到某个极限时,它就会重新启动!一旦我再次填充相同的行,那么它运行良好,转到下一行。

也有人见过这个问题吗?你有解决方案吗?问题也发生在iTerm。

1 个答案:

答案 0 :(得分:5)

这是StackOverflow中Mac Terminal.app annoying bug - How to fix it?的副本。问题是您必须在方括号\[ … \]中包围终端控制字符,以便在计算命令提示符的长度时bash shell不计算它们。

由于这是一个通用的shell /终端问题,并不是特定于Mac OS X或终端,因此应该将其迁移到StackOverflow并复制另一个问题。 (但是,我没有特权去做。)