0%

关于终端回显的问题

写在前面

在嵌入式设备调试中,经常会使用console口对设备进行管理。使用vim进行文件编辑时,会发现屏幕回显有问题,例如,行显示不会逐步递增到屏幕底端,列显示时换行错乱。这是tty设置的rowscols与实际的屏幕尺寸不适配。

对于console连接

我们可以使用stty -a查看stty的所有配置信息,其中第一行包括波特率,终端的大小(以字符为基准)。也可以直接使用stty size查看终端的大小。

对于常见的远程登录软件,如xshellsecure CRT会在软件底端显示出当前终端的大小,我们按照这个数值进行设定即可。之后reset终端设置。如果显示依然不正常,最大化窗口然后再恢复即可。

对于ssh或telent连接

为什么使用ssh或者telnet连接时不会出现这种终端显示的问题呢,因为ssh当窗口大小发生变化后,会自动的调整stty的数值。可以尝试调整窗口大小,然后stty size查看终端大小与软件显示的窗口大小进行比较。

写在后面

Linux的TTY子系统其实是一个很复杂的点。其中包括的知识点有行编辑进程组会话组信号控制流控制与I/O阻塞TTY配置等。