如何修复在ansi-term emacs中出现的损坏提示?

3
我的提示符在普通的bash终端中运行正常,但在ansi-term emacs bash终端中似乎出现了问题(或者显示为损坏)。
这是我的PS1:
\[\e[00;31m\]\u\[\e[00;33m\]@\h\[\e[00;32m\] \W\[\e[1;34m\] $\[\e[0m\]

在普通的bash中,它看起来像这样: Normal Prompt

在emacs ansi-term(bash)中,它看起来像这样: Broken Prompt emacs

我已经检查了default-process-coding-system变量是(utf-8-unix . utf-8-unix)

我认为我需要转义提示符中的某些内容,但我想不出具体是什么。

编辑:

我尝试简化它,通过执行export PS1='a',但我仍然有那个垃圾(0;mbax2ct2@kilburn:~/directory)在提示符前面。还有更多的想法吗? 实际上,我是通过ssh登录到该机器的;设置完PS1后,它是否可能做其他事情?


1
看起来你的PS1可能比你发布的更多,因为你的第二张图片显示了两条不同的路径,这表明可能有一些尝试设置xterm标题栏的东西。无论如何,在SO上可能已经有答案了:https://dev59.com/FnTYa4cB1Zd3GeqPtFHi - ArtemB
这是我在 .bashrc 中为 PS1 设置的所有内容;但我不确定所有转义字符是否正确。它们应该只是颜色:红色、黄色、绿色、粗体蓝色、默认(白色?) - Ciprian Tomoiagă
1个回答

2

检查是否设置了PROMPT_COMMAND环境变量。

使用unset PROMPT_COMMAND清除它,我猜测你将不再看到意外行为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接