Neovim 在 tmux 中丢失颜色方案。我看到的所有过去的解决方案都不适合我

Gen*_* Sy 5 vim command-line command-line-interface tmux neovim

我正在尝试使用来自https://github.com/kaicataldo/material.vim 的vim-material 主题

以下是我在 tmux 中运行 neovim 时发生的情况 tmux 中的 Neovim

下面是它应该是什么样子 neovim 不在 tmux 中

到目前为止我尝试过的:

在我的 .tmux.conf 我尝试了

set -g default-terminal "screen-256color"
Run Code Online (Sandbox Code Playgroud)

set -g default-terminal "xterm-256color"
Run Code Online (Sandbox Code Playgroud)

我也试过

TERM=screen-256color-bce tmux
Run Code Online (Sandbox Code Playgroud)

我可以在这里以正确的结果回应 $TERM。但我也尝试在打开 nvim 时export TERM=xterm-256colorexport TERM=screen-256color之前手动设置它们

这就是我的 init.vim 中的内容

let g:material_theme_style = 'ocean'
colorscheme material
set background=dark
set t_Co=256
set termguicolors
Run Code Online (Sandbox Code Playgroud)

我试过设置和取消设置这些。取消 termguicolors 是最糟糕的,这个主题不起作用,它给了我默认的 vim 外观

我还运行 tmux,因为tmux -2我还应该提到我在更改 tmux.conf 中的任何内容后杀死了 tmux 会话以确保它反映

相关应用和操作系统的版本

nvim v0.4.3
tmux 3.0a
iTerm2 3.3.9
macOS mojave 10.14.6
Run Code Online (Sandbox Code Playgroud)

编辑:

从那以后,我尝试清除所有 tmux 插件和 nvim 插件,只在我的 tmux 配置中保留默认终端

这是我的 init.vim 文件中剩下的

call plug#begin('~/.config/nvim/plugged')

Plug 'kaicataldo/material.vim'
call plug#end()

set termguicolors
let g:material_theme_style = 'default'
colorscheme material
Run Code Online (Sandbox Code Playgroud)

我还尝试下载旧版本的 tmux。2.5,还是没有运气。

我删除了我所有的 tmux 插件和 nvim 插件并重新安装了 material.vim,所以我确定插件中没有任何冲突

Gen*_* Sy 33

找到了解决方案。这篇文章帮助了我: https: //www.cyfyifanchen.com/blog/neovim-true-color

set-default colorset-option -ga terminal-overrides ",xterm-256color:Tc"
Run Code Online (Sandbox Code Playgroud)

  • 现在改为: set-option -gaterminal-overrides ",xterm-256color:Tc" (23认同)
  • 在 tmux 中,set-default 是一个未知命令。 (4认同)

les*_*dez 8

h: checkhealth在 neovim 中运行,当我在 tmux 会话中使用 neovim 时,我只收到一条错误消息。检查健康消息提供了唯一对我有用的解决方案。

它是这么说的:

  - WARNING: Neither Tc nor RGB capability set. True colors are disabled. |'termguicolors'| won't work properly.
    - ADVICE:
      - Put this in your ~/.tmux.conf and replace XXX by your $TERM outside of tmux:
          set-option -sa terminal-overrides ',XXX:RGB'
      - For older tmux versions use this instead:
          set-option -ga terminal-overrides ',XXX:Tc'
Run Code Online (Sandbox Code Playgroud)


小智 7

对我来说它是这样工作的,写在.tmux.config

set -ga terminal-overrides ",xterm-256color:Tc"
Run Code Online (Sandbox Code Playgroud)


Jor*_*fat 5

只需更改TERMshell 配置文件中的环境变量即可,在我的例子中.zshrc,即:

# Path Variables
export TERM='xterm-256color'
export EDITOR='nvim'
export VISUAL='nvim'
Run Code Online (Sandbox Code Playgroud)

重新加载终端并重新加载 tmux 或终止 tmux-server 并检查:

> echo $TERM
Run Code Online (Sandbox Code Playgroud)