作为一个程序员,长期面对的是屏幕,屏幕上长期占据的是编辑器(编辑器有三千,我独爱Vim!),所以编辑器的配色对程序员至关重要
我不是美工,更不是设计师,我只是一个有点强迫症(看到上面一段那个不知道跑哪去的句号了吗)的Vimer。所以,这里也没有什么设计理论上的各种概念和理念指导,有的只是自己的经验和感觉,为大家作一个参考。
XTermColorTableVim的配色支持
Vim支持自定义配色方案,也内置了多个配色方案,通过命令:colorscheme <Tab>
可以列出所有的配色方案,:colorscheme <scheme_name>
则是使用某个方案。
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自带的desert
和torte
两种方案的,能够在GUI和Terminal两种环境下都表现近乎一致的一个温和型配色方案。直接上图:
上图可以看到一些细节:
- 顶部的三个标签页,亮黄色表示当前页,暗米黄表示非活动页;
- 两个分割窗口,当前分割窗口使用鲜艳一点的状态栏,而非当前的则使用灰暗配色;
- 行号使用灰暗配色,以免喧宾夺主;当前行的行号则使用亮黄色;
- 所在行和所在列的配色都是偏淡,既能起到提醒和定位的作用,也不会亮瞎眼睛;
总的配色都是清晰而柔和的;对比度过高,初看的时候亮眼,长期对着就容易泪流满面了。判断是否柔和的一个(个人)标准是,黑底白字显示一个毫无格式的日志文件,盯着一分钟,眼睛不难受,那就是比较好的。
Log File特性
亮色主题
Detorte还提供了一个亮色主题。
Light Theme高对比度模式
在投影展示的时候,我们往往需要高对比度的配色方案,以便所有人都能看清楚。Detorte提供了一个命令DetorteHighContrast
以便开启高对比度模式,该命令只在黑色主题下有用。下面是高对比度下的一些图片。试试能不能对着日志文件那个看一分钟?
定义高亮的快捷命令
Detorte还提供了一个命令DetorteHighlight
来方便快捷地定义或修改高亮组,支持使用终端颜色序号来定义GUI配色。
如下命令定义了CursorLine
高亮组的配色,将其前景色设置为16
,背景色保持不变。
DetorteHighlight CursorLine 16 -1 none
结语
欢迎试用detorte
配色方案,项目地址。大家也可以基于一个已有的配色方案来微调打造一个自己的配色。
谢谢!
网友评论