终端错误?字符混淆

终端错误?字符混淆

我正在使用 Ubuntu 14.04,我的终端出现字符问题。

是我的终端,当我写一个简短的命令时当我编写的命令的字符数超过一行所能容纳的字符数时,就是我的终端。

我尝试更改各种字体,但问题依然存在。我还尝试更改字体大小,但依然没有效果。

另外,如果我写一个类似第二个链接的命令,然后我尝试删除字符,那么事情就会变得非常糟糕。一旦我开始删除字符,那么该行的其余部分就会消失,但如果我按下回车键,那么该命令就会被正确解释。

我应该怎么办?

答案1

这是什么终端?将 的输出添加echo $TERM到您的问题中。

如果您有以下情况,则可能会发生这种情况转义序列(由tput) 在您的提示中没有被\[和包围\]。这些反斜杠括号告诉 Bash,转义序列不占用屏幕上的任何水平空间。如果没有它们包围转义序列,Bash 会将转义序列的每个字节都算作一个可见字符,这会在您查看命令历史记录时弄乱之前显示的命令。

来源

要检查提示中是否有转义序列,请使用echo "$PS1" | od -c并查找值为 的字符033。如果发现这些字符,则说明提示中存在转义序列。

如果你033在提示中发现

检查提示PS1设置的位置:grep -i ps1 .*|less

然后编辑该文件(通常在)并用和.bashrc包围该序列。\[\]

相关内容