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

bra*_*zzi 6 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 $ '
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

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

Chr*_*age 5

这是Mac Terminal.app烦人的bug的副本- 如何解决?来自StackOverflow.问题是您必须在方括号中包围终端控制字符,\[ … \]以便在计算命令提示符的长度时bash shell不计算它们.

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

  • 很好的答案,但我认为将它留在Ask Different是可以接受的,因为苹果用户有这个问题不太可能去Stackoverflow寻求答案 (3认同)