我承认我使用了有点冗长的 bash 提示符:
--(username)-(Wed April 01|12:00:00)--(~ $
最近,我有了一个好主意来改变它,以便根据前一个命令的退出值,如果成功, () 的内部元素将是绿色的,如果失败,它们将是红色的。我让它在大多数情况下都能工作(一些奇怪的退出状态会将颜色更改为其他颜色,但我对此表示同意),但是当输入超过一行的命令并导致终端滚动时,提示消失!当没有颜色时,我的提示工作正常,所以我猜测这与我的颜色转义有关,特别是我未关闭的 [ 的,但我无法确定它。
#.profile
export PS1='--(\e[$((32-${?}))m\u\e[0m)-(\e[$((32-${?}))m\d\e[0m|\e[$((32-${?}))m\T\e[0m)--(\e[$((32-${?}))m\w\e[0m \$ '
提前致谢!
这听起来像this http://forums.macosxhints.com/archive/index.php/t-17068.html应该可以解决你的问题。
这似乎对我有用*
:
export PS1='--(\[\e[$((32-${?}))m\]\u\[\e[0m\])-(\[\e[$((32-${?}))m\]\d\[\e[0m\]|\[\e[$((32-${?}))m\]\T\[\e[0m\])--(\[\e[$((32-${?}))m\]\w\[\e[0m\] \$ '
*
嗯,真的export PS1='\u@\h:\w\$ '
为我工作
要引用链接的帖子,答案在于添加\[ 和 \]围绕 PS1 声明中的所有颜色序列:
之前我对 PS1 的值如下:
'\e[0;34m\h:\w [!]\$\e[0m '
这给了我一个如下形式的漂亮的蓝色提示
主机名:工作目录[命令号]$
但是,我遇到了与您相同的换行问题。修复方法是在 ANSI 转义符周围插入 \[ 和 \],以便 shell 知道不要将它们包含在换行计算中。这会得出 PS1 的以下值:
'\[\e[0;34m\]\h:\w [!]\$\[\e[m\] '
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)