在 Linux 和旧版 Unix(例如 at&t)上,当我滚动该行时,我在 Xenix 上看到文本,当前读取的行正在“覆盖”屏幕。看着视频,你明白我在说什么
怎么解决?是终端问题还是 vi 的某个选项问题?
答案1
这是您的配置问题(既不是终端也不是程序)。
通过 minicom 连接听起来像串行端口(或调制解调器)连接。 vi 要么从连接的某些预定义设置中获取屏幕大小,要么从终端描述中获取屏幕大小。它无法感知实际的屏幕尺寸。有一些常见的解决方法:
- 使用更新远程系统已知的屏幕尺寸的程序(或脚本)。如果不是也古老的,它有
stty
,它将显示大小为rows
和columns
,例如,在“stty -a”的输出中。在不太古老的系统中,resize
程序适合那(但我记得 minicom 缺乏 VT100 的大部分功能 - 所以这可能行不通)。但即使没有它,如果您stty
显示这些值(可能是错误的),您也可以覆盖它,例如stty rows 24
. LINES
通过设置和COLUMNS
环境变量来覆盖程序- 修改远程计算机上的终端描述。例如,它可能是一个 termcap,其中有类似“:li#40:co:80:”的内容。通常,依赖 termcap 的程序假定 termcap 文件中包含正确的屏幕尺寸。