这是一个很奇怪的现象。
在我的部分 Debian 系统(但不是全部)中,某些终端程序(例如)会出现奇怪的损坏。nano
但是,使用时不会发生这种情况less
。在这个特定情况下,我使用的是 Debian 7.9“Wheezy”64 位。我安装了很多软件包,但我记得这个问题即使在全新安装中也会发生。
问题如下。我在 nano 中打开一个大型文本文档(即包含多个页面的文档),并使用光标键滚动浏览它。每当光标经过屏幕底部以下时,文档就会向下跳转半页。这当然是正常的。什么不是然而,正常的是仅屏幕下半部分更新!
类似地,当我将光标移到顶部时,会显示上一页,但只有屏幕的上半部分会更新。
我认为,最好用实际的例子来说明这一点。请考虑以下仅包含行号的虚拟文件的图像:
这必须是一张照片,因为问题没有发生通过 ssh。奇怪的是,如果我第一次发出命令,它也不会发生screen
。
我将光标移到第 43 行以下,然后发生以下情况:
请注意屏幕下半部分如何更新,现在显示从 44 开始的行,而上半部分保持不变。
如果我再次将光标移到屏幕底部,情况会再次发生:
再次,屏幕的下半部分已更新,显示从 66 开始的行,而屏幕的上半部分保持不变。
如果我将光标移到屏幕顶部以外,上半部分会出现同样的问题:
如您所见,屏幕上半部分已更新,显示从 23 到 44 行,而下半部分没有变化,仍然显示从 67 开始的行。
我目前正在使用zsh
shell,但 中也出现了完全相同的问题bash
。因此,这不是 shell 特有的问题。
和变量为空;并且$lines
变量设置为。$columns
TERM
xterm-256color
那么......为什么会发生这种情况?我该怎么办?谢谢。
答案1
所以问题是你有TERM=xterm-256color
但正在使用Linux控制台,它是不是与 xterm 兼容的终端。(并且也不支持 256 色。)
如果你在你的或类似的文件中设置$TERM ~/.bashrc
,请确保检查先前的值然后再设置新的。例如:
case $TERM in
xterm|screen|tmux|rxvt-unicode)
TERM="$TERM-256color";;
esac