ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vim和Tmux开启True-Color支持

2022-08-08 19:34:42  阅读:368  来源: 互联网

标签:set Tmux Color xterm 真彩色 支持 Vim 终端 vim


为什么需要开启True-Color支持

当为Vim编辑器安装一些主题时,有的主题是需要启用True-Color支持才能正常显示使用!

验证终端的色彩支持

真彩色的支持是需要终端的支持的,常用的终端(如:iterm2)都已经支持,Xshell6(Build0181)之后版本也支持;

方式1:在终端里执行 24-bit-color.sh 脚本,如果支持真彩色,则显示如下:

否则则类似下图:

方式2:在终端里执行以下脚本

awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'

如果检查终端不支持真彩色,那只能更换一个支持的终端客户端软件,继续后续的教程!

如何开启True-Color支持

想要真正的多色彩支持,需要:

  • 模拟终端 支持
  • Vim 支持
  • Tmux 支持
配置终端支持
echo $TERM #查看当前终端类型,term/linx...
tput colors #查看当前终端色彩,8,256...

终端支持256:/etc/profile.d/bn-xterm-color.sh
if [[ -e /usr/share/terminfo/x/xterm-256color || -e /lib/terminfo/x/xterm-256color ]]; then
    export TERM='xterm-256color'
else 
    export TERM='xterm-color'
fi
配置Tmux支持

tmux > 2.2 后开始支持真彩色。在 .tmux.conf 中添加如下内容:

set -g default-terminal screen-256color
set-option -ga terminal-overrides ",*256col*:Tc" # 这句是关键

重新开启 tmux 即可。注意要先退出所有正在运行的 tmux 后再重开 tmux。

配置Vim支持

vim >= 7.4.1770 及 neovim >= 0.2.2 都支持真彩色,但需要少许配置。在 .vimrc 中加入:


set t_Co=256  #vim支持256:

if has("termguicolors")
    " fix bug for vim
    set t_8f=^[[38;2;%lu;%lu;%lum
    set t_8b=^[[48;2;%lu;%lu;%lum

    " enable true color
    set termguicolors
endif

其中 termguicolors 用来开启真彩色,前面两行用来解决 vim 的 BUG (neovim 不需要),其中 ^[ 是代表 ESC 键,需要在 vim 中按 Ctrl-v ESC 来输入。

标签:set,Tmux,Color,xterm,真彩色,支持,Vim,终端,vim
来源: https://www.cnblogs.com/Beavan/p/16563136.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有