美文网首页工具使用类工具癖@IT·互联网
淡妆浓抹总相宜——聊聊Vim的配色和高亮

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

作者: tamlok | 来源:发表于2017-05-02 23:06 被阅读3509次

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

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

    XTermColorTable

    Vim的配色支持

    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自带的deserttorte两种方案的,能够在GUI和Terminal两种环境下都表现近乎一致的一个温和型配色方案。直接上图:

    Detorte Terminal

    上图可以看到一些细节:

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

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

    Log File

    特性

    亮色主题

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

    Light Theme

    高对比度模式

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

    Log File In High Contrast Mode Vim Script in High Contrast Mode

    定义高亮的快捷命令

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

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

    DetorteHighlight CursorLine 16 -1 none
    

    结语

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

    谢谢!

    相关文章

      网友评论

      • Yokooll:你好, 我想请教下, 用了主题以后,怎么让背景透明呢? 想用终端自带的背景色
        Yokooll:好的
        tamlok:试试这个:hi Normal guibg=NONE ctermbg=NONE
      • 简讯Alfred:您好!高亮显示当前行您是怎么设置的,是什么插件吗?我的是一条线,看着太别扭了
        简讯Alfred:@tamlok 好的,谢谢:+1:
        tamlok: @追_风的脚步 可以打开项目地址,看里面的那个detorte.vim文件对应的配置行
        tamlok: @追_风的脚步 hi,就是配色方案的问题。你看看我文件里面CursorLine的配置。您当前的估计配置了underlined,你可以输入:hi cursorline看看输出啥。

      本文标题:淡妆浓抹总相宜——聊聊Vim的配色和高亮

      本文链接:https://www.haomeiwen.com/subject/vjrqtxtx.html