更多颜色

回忆上节课内容

  • 我们上次深入了配色方案
  • 定义了自己的配色方案 oeasy
  • 建立了自己的配色 oeasy
  • 在状态栏应用了自己的配色

明确能用的颜色

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

    • 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
  • 然后确定了具体的各种颜色
  • 还可以生成网页
  • 还有什么好玩的么?
  • 下次再说

oeasy教您玩转vim - 25 - 更多颜色的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. 必应每日一图url(可直接使用)

    必应每日一图url 首先放出地址,后面是一堆心路历程(一堆废话),只为链接的可以不用看 https://baotangguo.cn:8081/ 最初 ​ 博客园装饰的时候(虽然是抄的),想着上面背景图 ...

  2. Android 12(S) MultiMedia Learning(十)ACodec & OMX

    这一节的学习分为三块内容,omx hidl service用法.OMX架构.ACodec中的buffer分配. 1.omx hidl service system可以借助vndbinder来访问ven ...

  3. 用python字典统计CSV数据

    1.用python字典统计CSV数据的步骤和代码示例 为了使用Python字典来统计CSV数据,我们可以使用内置的csv模块来读取CSV文件,并使用字典来存储统计信息.以下是一个详细的步骤和完整的代码 ...

  4. k8s ingress部署安装

    ingress概念 ingress与service,deployment同样都是k8s中的一种资源 ingress用于实现域名方式访问k8s内部应用 安装ingress 1. 安装helm: wget ...

  5. NOIP模拟87(多校20)

    前言 题目不难,但是个人感觉小细节有一些,然后有亿点卡常.. 感觉对于笛卡尔树的题目看不出算法,然后代码实现方面细节注意太少,常数有点大. 下次注意吧. T1 集合均值 解题思路 感觉应该是期望题里面 ...

  6. Python实现求多个集合之间的并集-方法2

    之前使用过一种方法实现求集合间的并集,参考文章:https://www.cnblogs.com/mrlayfolk/p/12373532.html,这次使用另外一种方法实现,这种方法效率更高. 目的: ...

  7. react自定义导航组件 路由参数

    为何需要自定义导航? 因为在项目中往往不是所有的声明式导航都是需要a标签完成,有时候可能需要别的标签,此时如果在需要的地方去写编程式导航就会有代码重复可能性,就在对于公共代码进行提取. 思路: 定义一 ...

  8. 自动化搭建专属 AI 绘图服务

    通义万相AIGC技术已经比较成熟,结合阿里云的计算和存储产品可以方便的搭建自己专属的 AI 绘图服务.例如<创意加速器:AI 绘画创作>这个解决方案,利用阿里自研的通义万相AIGC技术在  ...

  9. xv6 的锁机制

    LOCK 公众号:Rand_cs 锁,大家应该很熟悉了,用来避免竞争,实现同步.本文以 xv6 为例来讲解锁本身是怎么实现的,废话不多说,先来看一些需要了解的概念: 一些概念 公共资源:顾名思义就是被 ...

  10. ETL工具-nifi干货系列 第一讲 揭开nifi神秘面纱

    1.nifi简介 Apache NiFi 是基于流程编程概念的数据流系统.它支持强大且可扩展的数据路由.转换和系统中介逻辑的有向图.NiFi具有基于Web的用户界面,用于设计.控制.反馈和监控数据流. ...