oeasy教您玩转vim - 25 - 更多颜色
更多颜色
回忆上节课内容
- 我们上次深入了配色方案
- 定义了自己的配色方案
oeasy - 建立了自己的配色
oeasy - 在状态栏应用了自己的配色

明确能用的颜色
先胡乱地尝试一下修改颜色代码
hi Normal ctermfg=1hi Normal ctermfg=2hi 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种颜色了
- 哈哈哈哈
- 开心
更多颜色
- 当我打开了下载的color文件
- 就是上上次从vimcolors.com下载的
- git clone https://github.com/gryf/wombat256grf.git
- 发现了这个

- 看起来我们可以使用rgb颜色编码方式!!
- 怎么做的呢?看代码
转化过程
- 需要在代码里定义从rgb颜色模式到ansi颜色模式的转化函数
- 首先把rgb拆分为三个本地的分量

- 如果三个分量相等

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

- 彩色怎么办呢?
彩色映射

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

- 然后再得到彩色的值

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

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

总结
- 这次了解了颜色的细节
设置 256 色模式
:set t_Co=256
- 然后确定了具体的各种颜色
- 还可以生成网页
- 还有什么好玩的么?
- 下次再说
oeasy教您玩转vim - 25 - 更多颜色的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- MySQL所有的主从同步架构搭建方式
目录 一.前言 二.关于MySQL主从同步 三.部署规划 3.1 服务器规划 3.2 数据库目录规划 四.准备工具 五.四台机器上使用通用二进制包安装MySQL(以node7为例) 5.1 上传MyS ...
- Java静态变量在静态方法内部无法改变值
一.如何解决"Java静态变量在静态方法内部无法改变值"的问题 在Java中,静态变量(也称为类变量)属于类本身,而不是类的任何特定实例.它们可以在没有创建类的实例的情况下访问和修 ...
- Composer 的下载与安装
一,Composer 的下载与安装 官网下载:https://getcomposer.org/download/ 打开 penssl的注释,在 D:\wamp\php7230\php.ini 文 ...
- 使用SQL语句完成数据表的去重工作
引入问题 可能大家都遇到过这样一种情况,一张表存在若干行数据,只是主键值相同,但是其它字段都是相同的,这就是我们通常所说的数据库重复数据,那我们是如何将这些数据删除呢?现在我们就介绍一种方法来实现数据 ...
- 🐞vue兄弟组件中方法互相调用
场景:父组件中同时引入两个子组件(A和B),此时B组件点击按钮需要调用A组件里面的方法 方案1:vue的事件总线 方案2:自定义事件($emit) 最终方案:方案2 父组件 具体操作 B组件上添加一个 ...
- kubernetes——资源管理
Kubernetes 资源管理 介绍 kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes. kubernetes的最小管理单元是pod而不是容器,所以只能将 ...
- Vuex 4与状态管理实战指南
title: Vuex 4与状态管理实战指南 date: 2024/6/6 updated: 2024/6/6 excerpt: 这篇文章介绍了使用Vuex进行Vue应用状态管理的最佳实践,包括为何需 ...
- 小程序转发 搜索wxml
新闻转发 在小程序中要不通过菜单项来完成分享功能,只能通过表单组件中的按钮来完成. 它是通过按钮中的开放能力完成 按钮自定义处理 新闻搜索 搜索wxml 搜索业务的js
- 使用 OpenTelemetry 构建可观测性 03 - 导出
上一个博文中,我提到如何使用 OpenTelemery 的特定语言 API 来收集遥测数据,包含手动和自动的埋点技术,这很重要!但是,收集遥测数据只是解决方案的第一步. 你需要把遥测数据路由转发到其他 ...
- 博客更换新域名为52ecy.cn
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 博客更换新域名为52ecy.cn 日期:2017-10-2 ...