如何找到在 tmux 中使用的 TERM 的有效值?

如何找到在 tmux 中使用的 TERM 的有效值?

开始时tmux我需要传递有效的终端类型。由于我正在编写 的初始启动脚本,因此tmux我想通过找出TERM当前系统上的有效值来涵盖所有基础。

如何找到要使用的有效值tmux以及我应该选择哪种顺序(包括可能的 16 色后备)?

这主要适用于 Linux 系统,但我认为该方法在大多数其他 unixoid 上也类似。

答案1

toe命令将显示当前系统上的 terminfo 定义。如果缺少该命令,您会在/usr/share/terminfo大多数 Linux 系统上看到原始数据。

答案2

toe程序列出了 ncurses 终端数据库中的条目,但它在简单的菜单中可能没有用。

例如,Debian 的ncurses 基础包列出了某人对最常见终端描述的概念:

该软件包包含 terminfo 数据文件,支持最常见的终端类型,包括 ansi、dumb、linux、rxvt、screen、sun、vt100、vt102、vt220、vt52 和 xterm。

该选择是临时的,反映了错误报告。检查实际包裹;

ansi cons25 cons25-debian cygwin 哑 Eterm Eterm-color hurd linux mach mach-bold mach-color mach-gnu mach-gnu-color pcansi rxvt rxvt-basic rxvt-m rxvt-unicode screen screen-256color screen-256color-bce screen- bce screen-s screen-w sun vt100 vt102 vt220 vt52 wsvt25 wsvt25m xterm xterm-256color xterm-color xterm-debian xterm-mono xterm-r5 xterm-r6 xterm-vt220 xterm-xfree86

或 41 个条目。看看这份清单,有几个地方不同意:

  • xterm-xfree86已被弃用,有利于xterm-new 12年前
  • hurd(以及相关条目)的用户mach很少,并且
  • 它不包含任何更正条目控制台或者静脉血栓栓塞。要得到那些(以及修正后的 256 色变体),您将需要ncurses-term(有 2675 个条目)。

infocmp程序不是特定于 ncurses 的,因此您可以在更多平台上使用它 - 检查是否存在。但如果你想检查是否存在(并查看特定功能),tput是起点。

在您可能使用的大多数系统上,您将使用 ncurses 终端数据库 - 或某些打包程序定义的子集。由于 ncurses 终端数据库通过将 附加到终端的推荐名称来定义 256 色变体"-256color",因此您找到合适名称的方法就是简单地测试带有后缀的首选名称是否存在。

进一步阅读:

相关内容