设计你的代码高亮

之前一直在用一款叫做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博文

我的新博客

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