使用 alacritty 配置通过 tmux 运行 nvim 时颜色不同

使用 alacritty 配置通过 tmux 运行 nvim 时颜色不同

背景:我正在设置 Arcolinux 的安装。我有一个键盘快捷键 SUPER+Enter 来启动 alacritty。

我想要的是让 alacritty 自动创建并在新的 tmux 会话中启动(如果没有尚未附加的会话)。或者,如果没有附加任何内容,则附加到现有的 tmux 会话。

我通过将以下内容添加到 alacritty.yml 中来实现此功能:

shell:
  program: /usr/bin/bash
  args: 
    - -l
    - -c
    - "tmux ls | grep -v attached && tmux attach || tmux"

这一切都完全按照我想要的方式工作,除了一件事之外,使用这种方法时 nvim 中的颜色会变得混乱(较暗,因此视觉模式具有与背景相同的突出显示颜色 - 烦人)。

我发现了几个相关问题并尝试了解决方案:例如,我的 tmux 配置中有以下内容(以及一些其他变体,包括 2 衬垫):

set -ag terminal-overrides ",xterm-256color:RGB"

我已确保 TERM 变量设置为,xterm-256color并且我还尝试在 nvim 中将背景设置为“暗”。

当我从连接到在 alacritty 中使用上述配置的 tmux 会话启动 nvim 时,这些似乎都没有帮助。

但是,如果我删除 alactritty 配置并运行命令来手动连接到 tmux,一切都会正常工作,并且 nvim 看起来符合预期:

/usr/bin/bash -l -c "tmux ls | grep -v attached && tmux attach || tmux"

任何想法为什么我从 alacritty 配置启动时得到不同的结果。

仅供参考,我这样做的部分原因是因为我不知道 SUPER+Enter 的绑定设置在哪里,无法在任何配置文件或设置中找到它(是否有更好的方法来追踪它)所以想法这可能也有用。

答案1

我希望这可以帮助别人:

我解决了这个问题,但我仍然有点困惑。当我从 nvim 运行时,:checkhealth确认 TERM 变量存在问题。据报告 TERM 设置为tmux-256color并给出了以下警告:

警告 Tc 和 RGB 功能均未设置。真彩色被禁用。 |'termguicolors'|将无法正常工作。

令人困惑的部分是你可以在 alacritty 中设置一个术语,但文档说:

# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.

当我运行echo $TERM它时,它返回了xterm-256color,所以我留下了它,但事实证明,解决方案是在 alacritty 配置中显式将 TERM 设置为xterm-256color

env:
  TERM: "xterm-256color"

这也需要在你的 tmux 配置中设置(但我已经有了):

set -ag terminal-overrides ",xterm-256color:RGB"

相关内容