作為一個(gè)程序員,長(zhǎng)期面對(duì)的是屏幕,屏幕上長(zhǎng)期占據(jù)的是編輯器(編輯器有三千,我獨(dú)愛(ài)Vim?。?,所以編輯器的配色對(duì)程序員至關(guān)重要
我不是美工,更不是設(shè)計(jì)師,我只是一個(gè)有點(diǎn)強(qiáng)迫癥(看到上面一段那個(gè)不知道跑哪去的句號(hào)了嗎)的Vimer。所以,這里也沒(méi)有什么設(shè)計(jì)理論上的各種概念和理念指導(dǎo),有的只是自己的經(jīng)驗(yàn)和感覺(jué),為大家作一個(gè)參考。

Vim的配色支持
Vim支持自定義配色方案,也內(nèi)置了多個(gè)配色方案,通過(guò)命令:colorscheme <Tab>可以列出所有的配色方案,:colorscheme <scheme_name>則是使用某個(gè)方案。
Vim的配色是區(qū)分GUI和Terminal進(jìn)行定義的,因此某個(gè)配色在GUI下好看,某個(gè)配色可能在Terminal下好看,比如個(gè)人覺(jué)得desert這個(gè)方案在GUI下挺好的,而torte這個(gè)方案在Terminal下挺好的。
如果你打開一個(gè)配色方案的文件如desert.vim,你會(huì)發(fā)現(xiàn)其實(shí)該文件就是一個(gè)Vim腳本文件,里面就是一條條的命令。其中,定義顏色的命令是highlight高亮命令,比如:
highlight IncSearch guifg=#000000 guibg=#87afff gui=none ctermfg=16 ctermbg=111 cterm=none
該命令就定義了一個(gè) Highlight Group IncSearch的配色。Vim的各個(gè)部件會(huì)調(diào)用不同的高亮組來(lái)進(jìn)行顯示,所以一個(gè)配色方案需要做的就是定義各種不同的高亮組。
具體語(yǔ)法這里就不復(fù)制了,感興趣的可以直接:h highlight。
Detorte配色方案
Detorte是一個(gè)結(jié)合Vim自帶的desert和torte兩種方案的,能夠在GUI和Terminal兩種環(huán)境下都表現(xiàn)近乎一致的一個(gè)溫和型配色方案。直接上圖:

上圖可以看到一些細(xì)節(jié):
- 頂部的三個(gè)標(biāo)簽頁(yè),亮黃色表示當(dāng)前頁(yè),暗米黃表示非活動(dòng)頁(yè);
- 兩個(gè)分割窗口,當(dāng)前分割窗口使用鮮艷一點(diǎn)的狀態(tài)欄,而非當(dāng)前的則使用灰暗配色;
- 行號(hào)使用灰暗配色,以免喧賓奪主;當(dāng)前行的行號(hào)則使用亮黃色;
- 所在行和所在列的配色都是偏淡,既能起到提醒和定位的作用,也不會(huì)亮瞎眼睛;
總的配色都是清晰而柔和的;對(duì)比度過(guò)高,初看的時(shí)候亮眼,長(zhǎng)期對(duì)著就容易淚流滿面了。判斷是否柔和的一個(gè)(個(gè)人)標(biāo)準(zhǔn)是,黑底白字顯示一個(gè)毫無(wú)格式的日志文件,盯著一分鐘,眼睛不難受,那就是比較好的。

特性
亮色主題
Detorte還提供了一個(gè)亮色主題。

高對(duì)比度模式
在投影展示的時(shí)候,我們往往需要高對(duì)比度的配色方案,以便所有人都能看清楚。Detorte提供了一個(gè)命令DetorteHighContrast以便開啟高對(duì)比度模式,該命令只在黑色主題下有用。下面是高對(duì)比度下的一些圖片。試試能不能對(duì)著日志文件那個(gè)看一分鐘?


定義高亮的快捷命令
Detorte還提供了一個(gè)命令DetorteHighlight來(lái)方便快捷地定義或修改高亮組,支持使用終端顏色序號(hào)來(lái)定義GUI配色。
如下命令定義了CursorLine高亮組的配色,將其前景色設(shè)置為16,背景色保持不變。
DetorteHighlight CursorLine 16 -1 none
結(jié)語(yǔ)
歡迎試用detorte配色方案,項(xiàng)目地址。大家也可以基于一個(gè)已有的配色方案來(lái)微調(diào)打造一個(gè)自己的配色。
謝謝!