我从Linux使用我的外壳中有一个彩色提示,也想在我的OS X终端.App中实现。终端反应有所不同。如果我使用普通的PS1代码,则任何线路的右侧都会在奇怪的点上切下(肯定不是终端窗口的右端)。而且下一行不会在下一行中显示,而是在同一行上。

预期反应:

erik2:~[06:46 am]$ expectedexpectedexpectedexpectedexpectedexpectedexpect
edexpected_

真正的反应:

ectedexpected_am]$ expectedexpectedexpectedexpectedexp

终端是正常的吗?还有其他选择吗?我只是编码错误吗?看看我的PS1代码:

export PS1="\033[0;34m\u:\W\e[0;32m[\@]\e[m\033[0;34m$\033[m "
有帮助吗?

解决方案

您需要通过与提示的非打印部分来逃脱提示的部分 \[…\].

export PS1="\[\033[0;34m\]\u:\W\[\e[0;32m\][\@]\[\e[m\033[0;34m$\033[m\] "

否则,Readline对命令行上的其余空间感到困惑。

许可以下: CC-BY-SA归因
不隶属于 apple.stackexchange
scroll top