如何让 TUI 应用程序在 GNU 屏幕上正确显示?

如何让 TUI 应用程序在 GNU 屏幕上正确显示?

我正在使用 Debian Buster 的一个衍生版本,名为阿姆比安。它是基于 ARM 的设备的发行版,我将其与 Nanopi Neo Air 一起使用。

Armbian 拥有基于 Curses 的全屏 TUI 应用程序。当我通过 SSH(和 Minicom)连接到此设备并运行这些应用程序(例如 )时armbian-config,会正确显示:

在此输入图像描述

screen当我通过串行控制台使用(GNU screen 4.7)连接,并TERM设置为screenscreen-256colorlinux等任何内容时,我仍然可以在命令行上正确获取 ANSI 颜色:

在此输入图像描述

,当我运行这些基于curses的TUI应用程序时,我得到乱码屏幕:

在此输入图像描述

我设置的值没有任何区别TERM。终端也变得无响应,我必须重置设备才能使其再次工作。

作为一些附加信息,像 VIM 这样的程序运行得很好。所以,我很困惑。

这可能是什么原因?我该如何解决这个问题?

答案1

假设您提到的“串行控制台”指的是 minicom,则 minicom 可能无法使用 UTF-8(这是典型的语言环境设置将告诉 ncurses 使用:请参阅手册页讨论NCURSES_NO_UTF8_ACS)。如果您使用 POSIX 语言环境(即 LC_ALL=C),则 ncurses 将不会尝试使用 Unicode 线条绘制,并且通常符合 minicom 的限制。某些非 UTF-8 语言环境(例如)en_US也可能有效。

vim 不会尝试绘制线条,因此您不会注意到其中的问题(尽管某些插件可能会这样做,但问题没有提到这方面)。

相关内容