进一步阅读

进一步阅读

全部。

问题与您可以在这里找到的设置有关:https://github.com/filmil/bugreports/blob/master/dialog/README.md

我注意到,在交互式 Docker 终端会话中运行对话框实用程序在从“常规”终端运行时与在会话中运行时会给出不同的结果screen

在前一种情况下,示例应用程序将按预期显示。见下文。

在此输入图像描述

在后一种情况下,会显示示例应用程序,但屏幕未完全“绘制”。见下文。

在此输入图像描述

起初我以为这是有关 TERM 设置的问题。但我找不到似乎在screen.有什么想法可以让屏幕会话也正常工作吗?请注意,如果我在没有 docker 的情况下运行“常规”对话框,则显示效果很好。只有当 docker 发挥作用时,显示才会出现“漏洞”。

谢谢你的思考!

答案1

就对话实用程序而言,终端是由程序模拟的终端screen。反过来,该screen程序正在与另一个终端通信,通过菜单可以看到该终端是 GNOME 终端、MATE 终端或类似的终端。

对话实用程序使用控制序列一次清除一大堆字符单元。 ECMA-48 标准定义了各种“擦除”控制序列,允许擦除到行尾、显示末尾或下一个人物。这些控制序列由 处理screen

终端有两种处理此类擦除序列的行为模式:当前的背景颜色或使用擦除默认背景色。在第二个屏幕截图中,您可以看到程序的结果,在本例中是对话实用程序,当终端实际使用默认背景颜色实现擦除时,它认为擦除使用当前背景颜色。 (第一个屏幕截图有两种方式。要么终端使用当前背景颜色进行擦除,要么应用程序首先识别出没有背景颜色擦除能力,并相应地调整其输出,以其他方式制作大的空白区域.)

在 的情况下,此行为是可切换的screen,就像在其他一些终端和终端仿真器的情况下一样。默认情况下screen,所谓的背景颜色擦除关闭,并且控制序列导致使用默认颜色进行擦除。使用bce命令将其打开,导致使用当前背景颜色进行擦除。bce在所有新屏幕中,可以使用该命令设置设置本身的默认值defbce

对话实用程序必须了解这一点。并非所有终端都有背景颜色擦除,更不用说使其可切换了。

通知对话实用程序的是与终端类型相对应的记录(记住,由TERM环境变量的值表示)从对话节目中可以看出)在 terminfo 数据库中。在该记录中,有一种功能允许程序确定它们正在交谈的终端将执行的操作。它被命名为bce. (termcap 的等效名称是ut。)

使这变得复杂的是screen告诉这些程序终端是什么的方式。其他终端仿真器只是定义它们作为终端的行为方式,并要求程序使用其终端仿真的特定终端类型运行。 tmux 只有终端类型tmuxtmux-256color例如,描述 tmux 的单个模拟终端行为。 screen相比之下,构建了一个奇怪的杂种终端类型,将screen仿真类型与外部类型相结合,呈现在终端上,例如screen.xterm-256color在您的情况下,terminfo 数据库中必须有一个匹配的杂种条目。

这里的问题部分在于你screen首先错误地描述了你的外部、渲染到、终端到。它不是 XTerm,它与 XTerm 不完全兼容,并且无论您可能听到什么,其正确的终端类型不是xterm。其正确的终端类型是gnome-256color或者vte-256colour,这实际上具体描述基于 libvte 的模拟器,例如 GNOME Terminal。 (您可以通过运行infocmp {xterm,vte}-256color来了解您的系统如何认为这两个终端仿真器不同。而这些只是 terminfo 数据库实际涵盖的仿真部分。)

你需要:

  • 为(前端渲染部分)提供正确的终端类型,screen以正确描述基于 libvte 的终端模拟器。
  • screen为运行的应用程序提供正确的终端类型自己的终端仿真。 screen将创造一个杂种screen.vte-256color类型。你也可以使用类似的东西screen-256color-bce反而。
  • 在创建屏幕之前,通过设置或命令告知screen打开背景颜色擦除。请注意,这将受到您调用的任何上下文中文件的可见性的影响。bcedefbce${HOME}/.screenrcscreen

另一种较差的方法(因为背景颜色擦除对于程序(例如为屏幕上的大空白块着色的对话实用程序)是一种有用的优化)方法是:

  • 仍然为(前端渲染部分)提供正确的终端类型,screen以正确描述基于 libvte 的终端模拟器。
  • screen为运行的应用程序提供正确的终端类型自己的终端仿真,但这一次是其中之一不是宣传背景颜色擦除功能,例如纯色screen-256color类型。
  • 留下screen背景颜色并擦除。

进一步阅读

相关内容