Vim 自定义配色

本文首发于我的个人博客,欢迎点击访问,无广告节面简洁!

最近重新开始学习Vim装上了WSL2,但发现Windows Terminal和vim的组合还是有很多问题需要解决的,由其默认的配色在某些状态下根本看不清字体,所以折腾了下自定义配色。

其实Vim是有很多自定义配色的插件,也尝试安装过,发现和Windows Terminal不兼容,配色非常奇怪,还是自己配色比较稳妥,如果是linux/mac用户完全可以在vimcolor上选择一个喜欢的配色进行配置。

我Windows Terminal采用的是魔改后的OneHalfDark配色(一开始以为vim的问题可以用配色解决,最后发现不行)

可以看下对比效果,左侧是git bash终端默认的配色,右侧是我改动后的配色,由其在visual模式下看起来舒服很多了

before after

256色

现在的terminal都支持256色了,vim的配置一般会用这个256个颜色,所以知道对应的几个颜色,这256色的配置是来源是terminal的scheme,可以通过脚本来查看terminal配置的256色;这是我的配置颜色

在这里插入图片描述

基础配置

自带配置文件

vim默认的配置路径在ubuntu下是/usr/share/vim/vim82/(这里vim82与vim版本有关),颜色的的配置文件夹在colors下,可以看到一些默认的配色,如果想要在原来的配置上魔改一下,可以从这里复制一份出来,默认的配置是default.vim

➜  colors ls
blue.vim      delek.vim    evening.vim   lists        pablo.vim      shine.vim  torte.vim
darkblue.vim  desert.vim   industry.vim  morning.vim  peachpuff.vim  slate.vim  zellner.vim
default.vim   elflord.vim  koehler.vim   murphy.vim   ron.vim        tools

自定义的颜色配置放置在~/.vim/colors/下,比如我的文件名叫做diy.vim

查看及切换配置

切换配置文件配置

在编辑器中,可以通过:colorscheme + 查看可用的配置

可以用:hi(highlight的简写)查看配置中的文件,也可以查看当前哪个配置有问题,方便修改

在这里插入图片描述

配置文件及参数

前置配置

这些配置是从默认配置复制来的,放在配置文件最前面即可。

" Remove all existing highlighting and set the defaults.
" 清除所有的配置
hi clear

" Load the syntax highlighting defaults, if it's enabled.
" 加载高光
if exists("syntax_on")
  syntax reset
endif

" Set color scheme name
" 设置配置文件名称
let colors_name = "diy"

高亮配置

在vim的配置中,针对不同的样式有不同的高亮方案,最终形成了一个有高亮的vim编辑器,常见的配置有以下三种:

" Color configuration to a style
hi Folded ctermfg=14 ctermbg=242 guifg=DarkCyan guibg=LightGrey term=standout

" Set the style without extra highlight
LineNrAbove    xxx cleared

" Set a style same as another style
CursorLineSign xxx links to SignColumn

我们一般只需要修改第一种实际带有颜色的配置即可,它的写法如下:

hi <style_name> ctermfg=<font_color> ctermbg=<background_color> guifg=<font_color> guibg=<background_color> term=<text_style> gui=<text_style> cterm=<text_style>

第一个是样式名称,我们可以通过:hi查看想要配置的样式;

后面的配置从范围上可以分为:

  • 针对彩色终端(color terminal)的配置:ctermfgctermbgcterm
  • 针对gui的配置:guifgguibggui
  • 针对常规终端:term;因为常规终端是黑白配色的,所以没有颜色配置

从配置样式上可以分为:

  • 字体颜色:ctermfgguifg
  • 背景颜色:ctermbgguibg
  • 字体样式:ctermguiterm

我是在终端配置的,也就是只需要配置ctermfgctermbgcterm,但为了防止修改修改导致以后使用gui显示不正常,我会一同配置gui的颜色;如果不需要覆盖某种配置(比如不需要背景色),就不需要配置这个参数
Terminal和GUI配置的最大区别是terminal只可以用256色,但是GUI可以用RGB颜色来配置(更多的颜色选择),在配置terminal时我们可以对照前面提到的256色卡来判断颜色的选择。

在字体颜色的配置上,我们常用0-15(终端内配置的色彩) / 232-255(灰度)进行配置,比如ctermfg=11配置字体颜色为浅黄色

字体样式有以下选择:

  • bold
  • underline
  • undercurl 一般仅在GUI中有效
  • reverse
  • inverse same as reverse
  • italic
  • standout
  • NONE no attributes used (used to reset it)

以下这个配置,可以看到它设置了terminal和GUI字体颜色是黄色,在GUI和普通黑白终端中字体加粗,在颜色终端中是下划线

hi CursorLineNr ctermfg=11 guifg=Yellow gui=bold term=bold cterm=underline

在我们能看懂配置后,就可以在原有的配置上进行魔改,设置成自己喜欢的颜色

我的配置

" Diy Vim color file for Windows Terminal with One Dark

hi clear Normal
set bg&

" Remove all existing highlighting and set the defaults.
hi clear

" Load the syntax highlighting defaults, if it's enabled.
if exists("syntax_on")
  syntax reset
endif

let colors_name = "diy"

hi LineNr       ctermfg=11 guifg=Yellow cterm=none
hi CursorLineNr ctermfg=11 guifg=Yellow gui=bold term=bold cterm=underline
hi Search       ctermfg=8 ctermbg=11 guifg=Black guibg=Yellow term=reverse
hi Statement    ctermfg=11 guifg=Yellow gui=bold term=bold
hi SignColumn   ctermfg=14 ctermbg=242 guifg=Cyan guibg=Grey term=standout
hi FoldColumn   ctermfg=14 ctermbg=242 guifg=Cyan guibg=Grey term=standout
hi Folded       ctermfg=14 ctermbg=242 guifg=DarkCyan guibg=LightGrey term=standout
hi Visual       ctermbg=242 guibg=LightGrey term=reverse

Reference

Day 12:vim 配色方案
如何编写属于自己的Vim主题
How to control/configure vim colors
oeasy教您玩转vim - 24 - 自定颜色
Vim Doc - Syntax

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/34285.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nginx | 苹果电脑Mac安装和验证Nginx服务过程记录

common wx&#xff1a;CodingTechWork&#xff0c;一起学习进步。 引言 本文主要总结如何在Mac电脑上进行Nginx服务的安装&#xff0c;重点讲解使用brew命令进行安装和验证的过程及问题记录。 安装步骤 安装过程记录 查看nginx信息 首先使用命令brew info nginx进行本机ng…

《Pytorch深度学习和图神经网络(卷 1)》学习笔记——第七章

这一章内容有点丰富&#xff0c;多用了一些时间&#xff0c;实例就有四五个。 这章内容是真多啊&#xff01;&#xff08;学完之后又回到开头感叹&#xff09; 大脑分级处理机制&#xff1a; 将图像从基础像素到局部信息再到整体信息 即将图片由低级特征到高级特征进行逐级计…

基于群组实现从 Azure AD 到极狐GitLab 的单点登录

目录 配置单点登录 在 Azure AD 中创建企业应用 SAML 基础配置 配置 Azure “Attributes & Claims” 配置用户同步 在极狐GitLab 创建 SCIM Token 配置 Azure Provisioning Azure 手动用户预配 测试单点登录 Azure 自动用户同步 配置群组同步 配置 SAML 群组链…

打jar包

pom文件指定打包的类型是jar&#xff0c;并指定启动主类 <packaging>jar</packaging><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>…

什么条件下会出现死锁,如何避免?

文章目录 一、什么是死锁二、产生死锁的原因&#xff1a;三、如何避免死锁&#xff1a; 一、什么是死锁 死锁&#xff0c;简单来说就是两个或者两个以上的线程在执行过程中&#xff0c;去争夺同一个共享资源导致相互等待的现象。如果没有外部干预&#xff0c;线程会一直处于阻塞…

uniapp封装门票等票务样式

先看效果图 ticketpage组件引用后&#xff0c;根据父级背景颜色改变镂空的颜色,空组件只有中间镂空的样式&#xff0c;上面是插槽heaer,下面内容是插槽content&#xff0c;可以自定义自己的内容和样式。我实现的最终效果是用的uview组件&#xff0c;如果复现需要项目引入。可…

Nginx负载均衡与动静分离

一、Nginx负载均衡&#xff1a; 1.概述&#xff1a; Nginx是一款http服务器软件&#xff0c;支持高达50000个并发连接数的响应。 &#xff08;1&#xff09;拥有强大的处理静态资源的能力。 &#xff08;2&#xff09;运行稳定。 &#xff08;3&#xff09;CPU&#xff0c…

【Unity3D编辑器开发】Unity3D中初次尝试使用PropertyDrawer属性

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 前段时间一直比较忙&#xff0c;没有时间更新博客&#xff0c;…

2011年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——纯享题目版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;考取过HCIE Cloud Computing、CCIE Security、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &#x1f495;兴趣爱好&#xff1a;b站天天刷&…

tomcat接入skywalking

tomcat接入skywalking 一、说明二、步骤2.1 准备java-agent包2.2 tomcat部署2.2.1 下载2.2.2 tomcat修改catalina.sh文件2.2.3 tomcat修改启动端口2.2.4 启动tomcat 三、验证四、问题排查4.1 tomcat的启动日志 一、说明 服务器中已经运行着skywalking&#xff0c;准备在同一台…

7-WebApis-5

Web APIs - 5 目标&#xff1a; 能够利用JS操作浏览器,具备利用本地存储实现学生就业表的能力 BOM操作综合案例 js组成 JavaScript的组成 ECMAScript: 规定了js基础语法核心知识。比如&#xff1a;变量、分支语句、循环语句、对象等等 Web APIs : DOM 文档对象模型&#xff…

2023全云在线联合微软AIGC专场沙龙:人工智能与企业创新,促进创造力的数字化转型

6月29日&#xff0c;由全云在线平台和微软联合主办的人工智能与企业创新&#xff1a;促进创造力的数字化转型——2023AIGC微软专场沙龙在广州天河区正佳万豪酒店举行。 关于2023AIGC微软专场沙龙 GPT翻开了AGI新的一页&#xff0c;也翻开了各行各业的新篇章。 2022年11月30日…

使用Jmeter读取和使用Redis数据

目录 前言 缓存 Redis服务和客户端安装 Jmeter使用Redis 前言 在使用 JMeter 进行性能测试时&#xff0c;有时需要读取和使用 Redis 数据。Redis 是一个开源的内存数据存储系统&#xff0c;常用于缓存、消息队列和数据存储等场景。 缓存 Web系统通常使用数据库来存储数据…

性能测试讲解超详细Jmeter

目录 什么是性能 性能测试的目的 功能测试和性能测试 基准测试 负载测试 稳定性测试 压力测试 并发测试 总结 性能测试指标 响应时间 并发数 吞吐量 点击数 错误率 资源使用率 总结 性能测试流程 性能测试需求分析 性能测试计划和方案 ​编辑性能测试用例​编辑 性…

【MySQL】MySQL数据库,RDBMS 术语,使用说明和报错解决的详细讲解

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

CommonJS 和 ES6 module

本文主要自己觉得要记录的点记录下来,不耽误大家时间&#xff0c;会持续更新。 Module对象 Module {id: xxx/demo/1.js, //加载文件的绝对路径path: xxx/demo,// 加载文件所在目录的绝对路径exports: [Function (anonymous)],filename: xxx/demo/1.js,加载文件的绝对路径load…

蓝桥杯专题-试题版-【圆的面积】【字符串对比】【字母图形】【核桃的数量】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

Lesson1-1:OpenCV简介

图像处理 学习目标 了解图像的起源知道数字图像的表示 1 图像的起源 1.1 图像是什么 图像是人类视觉的基础&#xff0c;是自然景物的客观反映&#xff0c;是人类认识世界和人类本身的重要源泉。“图”是物体反射或透射光的分布&#xff0c;“像“是人的视觉系统所接受的图在…

【数据库】MySQL 高级(进阶) SQL 语句

文章目录 前提条件一、常用查询1. SELECT&#xff08;显示查询&#xff09;2. DISTINCT&#xff08;不重复查询&#xff09;3. WHERE&#xff08;有条件查询&#xff09;4. AND/OR&#xff08;且/或&#xff09;5. IN &#xff08;显示已知值的字段&#xff09;6. BETWEEN&…

【探索 Kubernetes|作业管理篇 系列 14】StatefulSet 存储状态

前言 大家好&#xff0c;我是秋意零。 在上一篇中&#xff0c;我们讲解了 StatefulSet 的拓扑状态&#xff1b;我们发现&#xff0c;它的拓扑状态&#xff0c;就是顺序启动/删除、Pod 名称编号命名、将 Pod 名称设为 Hostname 名称、通过 Service 无头服务的 DNS 记录访问。 …