终端线路故障,文​​本显示为覆盖或命令文本出现在提示区域中

终端线路故障,文​​本显示为覆盖或命令文本出现在提示区域中

我安装了 Ubuntu 11.10 mini + LXDE,并想让我的命令行在终端中有所不同(而不仅仅是纯白色),所以我为路径线添加了蓝色(直到$符号的所有内容),它运行良好,但现在出现了两个奇怪的故障:

  1. 当我写一行比终端窗口长时,它不是从下一行开始而是从同一行开始,覆盖其中的所有内容。
  2. 有时,在浏览以前的命令(向上/向下箭头键)时,命令的某些部分会卡住并被视为提示的一部分(蓝色文本),但它是白色的并且不可删除,并且当我按下回车键时不会被视为命令的一部分。

我可能搞砸了什么?糟糕的是,我不记得我到底改了什么,但我确定我只改了一行.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\]\$ "

相关内容