Xenix 上的 Vi:为什么不滚动该行并覆盖当前行?

Xenix 上的 Vi:为什么不滚动该行并覆盖当前行?

在 Linux 和旧版 Unix(例如 at&t)上,当我滚动该行时,我在 Xenix 上看到文本,当前读取的行正在“覆盖”屏幕。看着视频,你明白我在说什么

怎么解决?是终端问题还是 vi 的某个选项问题?

答案1

这是您的配置问题(既不是终端也不是程序)。

通过 minicom 连接听起来像串行端口(或调制解调器)连接。 vi 要么从连接的某些预定义设置中获取屏幕大小,要么从终端描述中获取屏幕大小。它无法感知实际的屏幕尺寸。有一些常见的解决方法:

  • 使用更新远程系统已知的屏幕尺寸的程序(或脚本)。如果不是古老的,它有stty,它将显示大小为rowscolumns,例如,在“stty -a”的输出中。在不太古老的系统中,resize程序适合(但我记得 minicom 缺乏 VT100 的大部分功能 - 所以这可能行不通)。但即使没有它,如果您stty显示这些值(可能是错误的),您也可以覆盖它,例如stty rows 24.
  • LINES通过设置和COLUMNS环境变量来覆盖程序
  • 修改远程计算机上的终端描述。例如,它可能是一个 termcap,其中有类似“:li#40:co:80:”的内容。通常,依赖 termcap 的程序假定 termcap 文件中包含正确的屏幕尺寸。

相关内容