我正在尝试设置我的 bash 提示符以粗体显示时间和当前目录:
export PS1="\[\e[1m\][\A] \w \$ \[\e[0m\]"
这显然是有效的,但是当我使用命令历史记录(ctrl-r)时,找到我正在搜索的命令并按回车键后,此行无法正确显示。以下是示例:
[21:58] ~/Wyona/svn-repos/zwischengas $
(reverse-i-search)`ta': tail -F logs/log4j-cnode1.log
按下回车键后,变为:
[21:58] ~/Wyona/svn-repos/zwischengas $ -F logs/log4j-cnode1.log
当然,这不是“真正”的问题,因为命令确实正常工作,但它仍然很烦人。有人知道为什么会发生这种情况吗?更重要的是,如何预防/修复它?
答案1
我可以使用 10.5.0 到 10.6.4 上的系统 bash 重现此问题,这似乎是 bash 3.x 中的一个错误。
看:http://osdir.com/ml/bug-bash-gnu/2009-07/msg00021.html
安装一个新的、更新的 bash (4.x)(我喜欢的路径是 Homebrew,可以在 github 上找到),它应该被修复(对我来说是的)。
答案2
我也看到了这个问题,并通过跳转到“首选项”>“设置”>“[无论哪一个是默认值]”>“高级”并将“将终端声明为”设置为“xterm-256color”,然后重新启动终端来修复它。