在我的 tmux 配置中,我有以下内容:
set-option -g default-terminal "screen-256color"
set-option -ga terminal-overrides ',*-256color*:Tc'
Run Code Online (Sandbox Code Playgroud)
这意味着如果我运行tmux info | grep Tc检查真彩色支持,它会工作并显示已启用。echo $TERM在 tmux 中screen-256color按预期给出。
正如我从 tmux 手册中了解到的,终端覆盖匹配上的终端名称*-256color*,这是有道理的。
不过,我不明白的是,下列哪项不工作/匹配:
set-option -ga terminal-overrides ',*screen-256color*:Tc'
Run Code Online (Sandbox Code Playgroud)
我不明白为什么不?这是怎么回事?
tmux 版本 2.9a
(旁白:如果你想知道为什么我使用screen-而不是,说tmux-这是因为 neovim 似乎需要它来检测真彩色支持)
它们是完全独立的,default-terminal从不检查terminal-overrides。
default-terminal是用于TERM内部 tmux的默认值,因此应该匹配screen*或tmux*。这告诉 tmux 内部的应用程序 tmux 本身的功能是什么。
terminal-overrides匹配TERM外部 tmux 并允许您修改 tmux 在与运行它的终端通信时使用的功能。
大概*-256color匹配,因为您将TERM外部设置为匹配但不匹配的内容screen-256color*(可能xterm-256color)。
如果您想要terminal-overridestmux 内的应用程序的等效项(修改 tmux 内的 terminfo(5) 条目的功能),您将需要在您正在使用的应用程序中查找配置选项,或者基于tmux-256color或screen-256color使用 infocmp构建您自己的条目(1) 和 tic(1)。