之前一直在用一款叫做molokai的主题,尽管molokai很流行,也很漂亮,但是它在neovim上的样式我并不是十分喜欢。比方说它的行号背景,我觉得很突兀,我不喜欢;数字的颜色,我觉得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状态栏的设计,可以参考我的另外一篇博客