設計你的代碼高亮

之前一直在用一款叫做molokai的主題,儘管molokai很流行,也很漂亮,但是它在neovim上的樣式我並不是十分喜歡。比方說它的行號背景,我覺得很突兀,我不喜歡;數字的顏色,我覺得molokai整體的色彩搭配都偏暗,我希望它的數字顏色亮一些;當前行的背景色太明顯,我希望它的顏色淡一些;而且我很不習慣它對括號顯示的方式。因此我需要對其主題進行一定的修改。
molokai


我的修改:

  • 去掉行號的背景色
  • 修改括號的顯示色彩
  • 修改數字的前景色(藍->黃)
  • 自定義狀態欄顯示樣式與色彩
  • 修改錯誤提示顏色
  • 修改高亮行的背景色和前景色

修改後的顯示效果:

同molokai主題一樣,這個主題也需要開啓256色支持,即你需要在你的vim/neovim的配置文件中寫入:

set t_Co=256

在這裏我對部分代碼規則進行簡單的解釋

type explain
Boolean 對布爾型數據設置高亮色
Character 對字符型數據設置高亮色
Number 對數字設置高亮色
Float 對浮點型數據設置高亮色
String 對字符串設置高亮色
Constant 對常量設置高亮色
Function 對函數名設置高亮色
keyword 對關鍵詞設置高亮色
Visual 對選中行(高亮行)設置高亮色
CursorLine 對光標行設置高亮色
MatchParen 對括號設置高亮色
LineNr 對行號設置高亮色

最後附上主題代碼:

" 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 = "vegeta"

if &t_Co > 255
   hi Normal                       ctermbg=234
   hi CursorLine                   ctermbg=233   cterm=none
   hi CursorLineNr    ctermfg=208                cterm=none
   hi Boolean         ctermfg=135
   hi Character       ctermfg=144
   hi Number          ctermfg=190
   hi String          ctermfg=144
   hi Conditional     ctermfg=161                cterm=bold
   hi Constant        ctermfg=135                cterm=bold
   hi Cursor          ctermfg=16   ctermbg=253
   hi Debug           ctermfg=225                cterm=bold
   hi Define          ctermfg=81
   hi Delimiter       ctermfg=241

   hi DiffAdd                      ctermbg=24
   hi DiffChange      ctermfg=181  ctermbg=239
   hi DiffDelete      ctermfg=162  ctermbg=53
   hi DiffText                     ctermbg=102   cterm=bold

   hi Directory       ctermfg=118                cterm=bold
   hi Error           ctermfg=219  ctermbg=124
   hi ErrorMsg        ctermfg=199  ctermbg=16    cterm=bold
   hi Exception       ctermfg=118                cterm=bold
   hi Float           ctermfg=135
   hi FoldColumn      ctermfg=67   ctermbg=16
   hi Folded          ctermfg=67   ctermbg=16
   hi Function        ctermfg=118
   hi Identifier      ctermfg=208                cterm=none
   hi Ignore          ctermfg=244  ctermbg=232
   hi IncSearch       ctermfg=193  ctermbg=16

   hi keyword         ctermfg=161                cterm=bold
   hi Label           ctermfg=229                cterm=none
   hi Macro           ctermfg=193
   hi SpecialKey      ctermfg=81

   hi MatchParen      ctermfg=208  ctermbg=233   cterm=bold
   hi ModeMsg         ctermfg=229
   hi MoreMsg         ctermfg=229
   hi Operator        ctermfg=161

   " complete menu
   hi Pmenu           ctermfg=220  ctermbg=233
   hi PmenuSel        ctermfg=255  ctermbg=242
   hi PmenuSbar                    ctermbg=232
   hi PmenuThumb      ctermfg=220

   hi PreCondit       ctermfg=118                cterm=bold
   hi PreProc         ctermfg=118
   hi Question        ctermfg=220
   hi Repeat          ctermfg=161                cterm=bold
   hi Search          ctermfg=0    ctermbg=222   cterm=NONE

   " marks column
   hi SignColumn      ctermfg=118  ctermbg=235
   hi SpecialChar     ctermfg=161                cterm=bold
   hi SpecialComment  ctermfg=245                cterm=bold
   hi Special         ctermfg=81
   if has("spell")
       hi SpellBad                 ctermbg=52
       hi SpellCap                 ctermbg=17
       hi SpellLocal               ctermbg=17
       hi SpellRare   ctermfg=none ctermbg=none  cterm=reverse
   endif
   hi Statement       ctermfg=161                cterm=bold
   hi StorageClass    ctermfg=208
   hi Structure       ctermfg=81
   hi Tag             ctermfg=161
   hi Title           ctermfg=166
   hi Todo            ctermfg=231  ctermbg=232   cterm=bold

   hi Typedef         ctermfg=81
   hi Type            ctermfg=81                 cterm=none
   hi Underlined      ctermfg=244                cterm=underline

   hi VertSplit       ctermfg=244  ctermbg=232   cterm=bold
   hi VisualNOS                    ctermbg=238
   hi Visual          ctermfg=220  ctermbg=241
   hi WarningMsg      ctermfg=231  ctermbg=238   cterm=bold
   hi WildMenu        ctermfg=81   ctermbg=16

   hi Comment         ctermfg=59
   hi CursorColumn                 ctermbg=233
   hi ColorColumn                  ctermbg=236
   hi LineNr          ctermfg=250  ctermbg=0
   hi NonText         ctermfg=59

   hi SpecialKey      ctermfg=59

   set statusline=%1*\%<%.50F\                                     "顯示文件名和文件路徑
   set statusline+=%=%2*\%y%m%r%h%w\ %*                            "顯示文件類型及文件狀態
   set statusline+=%3*\%{&ff}\[%{&fenc}]\ %*                       "顯示文件編碼類型
   set statusline+=%5*\%3p%%\%*                                    "顯示光標前文本所佔總文本的比例
   hi User1 cterm=none ctermfg=12  ctermbg=0
   hi User2 cterm=none ctermfg=208 ctermbg=0
   hi User3 cterm=none ctermfg=169 ctermbg=0
   hi User5 cterm=none ctermfg=green ctermbg=0
endif

關於vim狀態欄的設計,可以參考我的另外一篇博客


hexo博文

我的新博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章