自定义提示在 Mac 终端上不起作用

自定义提示在 Mac 终端上不起作用

我喜欢在我的 unix 机器上使用自定义提示(当前路径为蓝色):

export PS1='\[\e[0;34m\]\w \$\[\e[m\] '

但是当我尝试在 Mac 的终端上使用它时,它不起作用:它无法检测到提示符的结束,并且在我输入命令时覆盖了提示符。当我输入长命令时也会发生这种情况,它会换行而不是开始新行。

我不明白为什么会出现这种情况,因为我在两台机器上都使用 bash。有什么建议可以解决这个问题吗?

答案1

我不确定你为什么会得到不同的结果,但正确的值应该是

export PS1='\[\e[0;34m\]\w \$\[\e[m\] '

非打印字符应该括在内\[ \],以便 bash 可以计算屏幕上提示的正确长度(为了光标定位的目的)。

答案2

尝试将其放在常规双引号“”中,而不是这些 ' ' 单引号中。对我来说很管用。也适用于 iTerm 以及 Mac OS X 的终端。

答案3

\[\e[[\e[当它不是以代码格式出现时,就会出现在帖子中。抱歉造成混淆。我通过将 Mac 上的 bash 从 3.0 更新到 4.2 解决了该问题。

相关内容