淡妆浓抹总相宜——聊聊Vim的配色和高亮

作为一个程序员,长期面对的是屏幕,屏幕上长期占据的是编辑器(编辑器有三千,我独爱Vim!),所以编辑器的配色对程序员至关重要

我不是美工,更不是设计师,我只是一个有点强迫症(看到上面一段那个不知道跑哪去的句号了吗)的Vimer。所以,这里也没有什么设计理论上的各种概念和理念指导,有的只是自己的经验和感觉,为大家作一个参考。

淡妆浓抹总相宜——聊聊Vim的配色和高亮_第1张图片
XTermColorTable

Vim的配色支持

Vim支持自定义配色方案,也内置了多个配色方案,通过命令:colorscheme 可以列出所有的配色方案,:colorscheme 则是使用某个方案。

Vim的配色是区分GUI和Terminal进行定义的,因此某个配色在GUI下好看,某个配色可能在Terminal下好看,比如个人觉得desert这个方案在GUI下挺好的,而torte这个方案在Terminal下挺好的。

如果你打开一个配色方案的文件如desert.vim,你会发现其实该文件就是一个Vim脚本文件,里面就是一条条的命令。其中,定义颜色的命令是highlight高亮命令,比如:

highlight IncSearch guifg=#000000 guibg=#87afff gui=none ctermfg=16 ctermbg=111 cterm=none

该命令就定义了一个 Highlight Group IncSearch的配色。Vim的各个部件会调用不同的高亮组来进行显示,所以一个配色方案需要做的就是定义各种不同的高亮组。

具体语法这里就不复制了,感兴趣的可以直接:h highlight

Detorte配色方案

Detorte是一个结合Vim自带的deserttorte两种方案的,能够在GUI和Terminal两种环境下都表现近乎一致的一个温和型配色方案。直接上图:

淡妆浓抹总相宜——聊聊Vim的配色和高亮_第2张图片
Detorte Terminal

上图可以看到一些细节:

  1. 顶部的三个标签页,亮黄色表示当前页,暗米黄表示非活动页;
  2. 两个分割窗口,当前分割窗口使用鲜艳一点的状态栏,而非当前的则使用灰暗配色;
  3. 行号使用灰暗配色,以免喧宾夺主;当前行的行号则使用亮黄色;
  4. 所在行和所在列的配色都是偏淡,既能起到提醒和定位的作用,也不会亮瞎眼睛;

总的配色都是清晰而柔和的;对比度过高,初看的时候亮眼,长期对着就容易泪流满面了。判断是否柔和的一个(个人)标准是,黑底白字显示一个毫无格式的日志文件,盯着一分钟,眼睛不难受,那就是比较好的

淡妆浓抹总相宜——聊聊Vim的配色和高亮_第3张图片
Log File

特性

亮色主题

Detorte还提供了一个亮色主题。

淡妆浓抹总相宜——聊聊Vim的配色和高亮_第4张图片
Light Theme

高对比度模式

在投影展示的时候,我们往往需要高对比度的配色方案,以便所有人都能看清楚。Detorte提供了一个命令DetorteHighContrast以便开启高对比度模式,该命令只在黑色主题下有用。下面是高对比度下的一些图片。试试能不能对着日志文件那个看一分钟?

淡妆浓抹总相宜——聊聊Vim的配色和高亮_第5张图片
Log File In High Contrast Mode
淡妆浓抹总相宜——聊聊Vim的配色和高亮_第6张图片
Vim Script in High Contrast Mode

定义高亮的快捷命令

Detorte还提供了一个命令DetorteHighlight来方便快捷地定义或修改高亮组,支持使用终端颜色序号来定义GUI配色。

如下命令定义了CursorLine高亮组的配色,将其前景色设置为16,背景色保持不变。

DetorteHighlight CursorLine 16 -1 none

结语

欢迎试用detorte配色方案,项目地址。大家也可以基于一个已有的配色方案来微调打造一个自己的配色。

谢谢!

你可能感兴趣的:(淡妆浓抹总相宜——聊聊Vim的配色和高亮)