我安装了 Ubuntu 11.10 mini + LXDE,并想让我的命令行在终端中有所不同(而不仅仅是纯白色),所以我为路径线添加了蓝色(直到$
符号的所有内容),它运行良好,但现在出现了两个奇怪的故障:
- 当我写一行比终端窗口长时,它不是从下一行开始而是从同一行开始,覆盖其中的所有内容。
- 有时,在浏览以前的命令(向上/向下箭头键)时,命令的某些部分会卡住并被视为提示的一部分(蓝色文本),但它是白色的并且不可删除,并且当我按下回车键时不会被视为命令的一部分。
我可能搞砸了什么?糟糕的是,我不记得我到底改了什么,但我确定我只改了一行.bashrc
编辑:对于有兴趣自定义提示的其他任何人,这是一个很好的教程. 确保您没有遗漏任何符号(尤其是“”符号),并且一切正常。
答案1
我来晚了,但这里的问题是 Bash 不知道将光标放在哪里,因为它将特殊颜色代码字符解释为普通文本。通过在颜色代码周围放置\[
和\]
标签可以解决这个问题。不要写\e[1;31m
将文本变为红色,而应该写\[\e[1;31m\]
。
如果您遇到此问题,请仔细检查所有颜色转义代码,看它们周围是否有这些标签。
答案2
默认的 bashrc 可以在 中找到/etc/skel/.bashrc
。我建议您备份当前的 bashrc,然后用 skel 中的 bashrc 替换您的 bashrc,然后查看问题是否仍然存在。如果没有问题,请备份并编辑新的 bashrc,并在注释中说明您做了什么!!
答案3
我有同样的症状,但在我的例子中,问题出\a
在我的 Bash 提示符中的 ASCII 铃声转义序列导致了这个问题。颜色代码正确地用括号括起来(感谢@ringstaart)。
我的有问题的 Bash 提示符设置.bashrc
是(省略颜色变量定义):
PS1="\[$BLUE\]\u@\h: \[$YELLOW\]\w\a\\[$PURPLE\]\[$WHITE\]\$ "
只需删除即可\a
解决问题:
PS1="\[$BLUE\]\u@\h: \[$YELLOW\]\w\\[$PURPLE\]\[$WHITE\]\$ "