neovim与tmux的颜色搭配

0 资料

1 概述

1.1 问题

(Neo)Vim在Tmux中显示的颜色与不使用Tmux时的颜色有差别。尤其在使用colortheme时,Tmux中vim某些颜色不会显示。

1.2 环境:

Tabby Terminal

SSH连接到Ubuntu 20.04

zsh

Tmux 3.4

Neovim 0.10.1

2 解决方法

2.1 环境变量TERM

首先确保 Shell的环境变量TERM 在Tmux中以及不在Tmux中是相同的。 环境变量TERM的值一般是screen-256color或xterm-256color,我们把TERM变量统一成其中一个就行。使用echo $TERM命令查看环境变量。

下面以我的环境为例:

- 不在Tmux中,Shell执行echo $TERM返回xterm-256color,于是下一步就将Tmux的TERM设为xterm-256color。
- 进入Tmux的配置文件~/.tmux.conf,设置以下命令:
    * set -g default-terminal "xterm-256color"  
- 设置完后保存退出,并确保退出所有Tmux的session
- 重启Tmux,查看在Tmux中以及不在Tmux中Vim的颜色是否相同。如果还不相同,则看下列步骤。

2.2 支持的颜色

开启Nvim和Tmux的TrueColor。如果颜色仍然不相同,有可能是一方使用TrueColor而另一方使用的是256color。由于目前主流的终端模拟器都支持TrueColor,因此这里就将Nvim和Tmux都设置为TrueColor。

2.2.1 确保终端模拟器支持TrueColor

在这里 termstandard/colors 查看终端模拟器对TrueColor支持,如果您当前使用的终端不支持TrueColor,建议换成支持TrueColor的终端。

当然也可也使用color.sh脚本(./color.sh)测试终端是否支持TrueColor。在非Tmux下的Shell中运行脚本,如果终端支持TrueColor,则会显示如下:

如果终端不支持TrueColor,则显示会与下面的效果类似:

2.2.2 Tmux开启TrueColor

进入Tmux的配置文件~/.tmux.conf,设置以下命令:

- set-option -ga terminal-overrides ",*256col*:Tc" 

设置完成后,重启Tmux,运行脚本24-bit-color.sh测试。

2.2.3 nvim开启TrueColor

在nvim配置文件~/.config/nvim/init.vim中设置

- set termguicolors

这样就全部设置完成了,最后再看看Vim在Tmux中颜色是否改变。

3 terminal

推荐使用tabby。

易错点

  • Q1:为什么在ubuntu内部的终端可以在tmux下打开nvim时,nvim不会错行,但是在外部使用ssh连接时执行相同动作,nvim显示会错行?
    • A:这是终端不支持彩色,可再终端中运行color.sh脚本(./color.sh),如果没有彩色条纹,即不支持彩色,包括256色和真彩色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值