在 Bash 中向后滚动时,SSH 连接上的换行符错误

在 Bash 中向后滚动时,SSH 连接上的换行符错误

我有一个通过 GNOME 终端中的 SSH 连接的 Bash 终端。服务器是 Debian Linux,客户端是 Ubuntu Linux。

长行的输出显示得很好,但是当我使用向上键在 bash 历史记录中滚动时,输出只有 80 个字符,然后中断并再次从同一行开始。

它看起来应该是这样的:

server01:/usr/local/bin# 非常长的命令 参数1 参数2 参数3

但它看起来类似于这样:

参数3 usr/local/bin# 非常长的命令 参数1 参数2 

答案1

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

答案2

当您输入时您会得到什么echo $TERM

如果它提到了 gnome 或其他看似特定于 gnome 的东西,您可能需要尝试一些更通用的东西,如vt100xtermxterm-256color

如果 Gnome 终端窗口宽度远远超过 80 个字符,是否还会出现同样的问题?

相关内容