为什么 nano 在某些系统上无法正确重绘屏幕?

为什么 nano 在某些系统上无法正确重绘屏幕?

这是一个很奇怪的现象。

在我的部分 Debian 系统(但不是全部)中,某些终端程序(例如)会出现奇怪的损坏。nano但是,使用时不会发生这种情况less。在这个特定情况下,我使用的是 Debian 7.9“Wheezy”64 位。我安装了很多软件包,但我记得这个问题即使在全新安装中也会发生。

问题如下。我在 nano 中打开一个大型文本文档(即包含多个页面的文档),并使用光标键滚动浏览它。每当光标经过屏幕底部以下时,文档就会向下跳转半页。这当然是正常的。什么不是然而,正常的是仅屏幕下半部分更新!

类似地,当我将光标移到顶部时,会显示上一页,但只有屏幕的上半部分会更新。

我认为,最好用实际的例子来说明这一点。请考虑以下仅包含行号的虚拟文件的图像:

图 1

这必须是一张照片,因为问题没有发生通过 ssh。奇怪的是,如果我第一次发出命令,它也不会发生screen

我将光标移到第 43 行以下,然后发生以下情况:

图 2

请注意屏幕下半部分如何更新,现在显示从 44 开始的行,而上半部分保持不变。

如果我再次将光标移到屏幕底部,情况会再次发生:

图 3

再次,屏幕的下半部分已更新,显示从 66 开始的行,而屏幕的上半部分保持不变。

如果我将光标移到屏幕顶部以外,上半部分会出现同样的问题:

图 4

如您所见,屏幕上半部分已更新,显示从 23 到 44 行,而下半部分没有变化,仍然显示从 67 开始的行。

我目前正在使用zshshell,但 中也出现了完全相同的问题bash。因此,这不是 shell 特有的问题。

和变量为空;并且$lines变量设置为。$columnsTERMxterm-256color

那么......为什么会发生这种情况?我该怎么办?谢谢。

答案1

所以问题是你有TERM=xterm-256color但正在使用Linux控制台,它是不是与 xterm 兼容的终端。(并且也不支持 256 色。)

如果你在你的或类似的文件中设置$TERM ~/.bashrc,请确保检查先前的值然后再设置新的。例如:

case $TERM in
    xterm|screen|tmux|rxvt-unicode)
        TERM="$TERM-256color";;
esac

相关内容