Vim 更多颜色详解

回忆上节课内容🤔

图片描述

明确能用的颜色

  • 先胡乱地尝试一下修改颜色代码

    • hi Normal ctermfg=1
    • hi Normal ctermfg=2
    • hi Normal ctermfg=3
  • 首先看看有多少能用的颜色

    • :set t_Co?
  • 设置为 256 色的有颜色终端(cterm)显示模式

    • :set t_Co=256
  • 那么这 256 种颜色都有什么呢?

  • 我们尝试把他显示出来

显示某种颜色

  • 显示某种颜色
echo -e "\033[48;5;1moeasy[0m"
echo -e "\033[48;5;2moeasy[0m"
echo -e "\033[48;5;3moeasy[0m"
echo -e "\033[48;5;4moeasy[0m"
echo -e "\033[48;5;5moeasy[0m"

图片描述

尝试把所有颜色遍历出来

#!/bin/bash
for c in {0..255}
do
    printf "\033[48;5;"$c"m%5d\033[0m" $c
done
  • 保存并运行当前程序
  • :w|!sh %

图片描述

  • 确实符合ansi的规则
  • 这不废话么?🤪

修改确认

  • :hi Normal ctermbg=196
  • :hi Normal ctermbg=214
  • :hi Normal ctermbg=124
  • 经过确认颜色基本能够对应上
  • 这样我们就可以使用全部256种颜色了
  • 哈哈哈哈
  • 开心😁

更多颜色

图片描述

  • 看起来我们可以使用rgb颜色编码方式!!
  • 怎么做的呢?看代码

转化过程

  • 需要在代码里定义从rgb颜色模式到ansi颜色模式的转化函数
  • 首先把rgb拆分为三个本地的分量

图片描述

  • 得到三个分量近似的灰阶值

图片描述

  • 如果三个分量相等

图片描述

  • 映射到相应具体的灰阶的值

图片描述

  • 彩色怎么办呢?

彩色映射

图片描述

  • rgb三个分量已经得到了
  • 得到近似颜色

图片描述

  • 然后再得到彩色的值

图片描述

  • 这样我们就可以使用rgb颜色了
  • 而且不论我们使不使用颜色映射
  • 都可以用代码当前的配色方案直接生成颜色网页

生成网页

图片描述

  • 可以用自定义的颜色方案生成网页
    • :TOhtml
    • 或者 :source $VIMRUNTIME/syntax/2html.vim
  • 然后在浏览器里打开他
    • :firefox % 图片描述

总结

  • 这次了解了颜色的细节
  • 设置 256 色模式
    • :set t_Co=256
  • 然后确定了具体的各种颜色
  • 还可以生成网页
  • 还有什么好玩的么?🤔
  • 下次再说 👋

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

AI技术内参 -〔洪亮劼〕

微服务架构实战160讲 -〔杨波〕

从0开始学游戏开发 -〔蔡能〕

SQL必知必会 -〔陈旸〕

Redis核心技术与实战 -〔蒋德钧〕

To B市场品牌实战课 -〔曹林〕

如何读懂一首诗 -〔王天博〕

说透区块链 -〔自游〕

手把手带你写一门编程语言 -〔宫文学〕