之前一直在用一款叫做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狀態欄的設計,可以參考我的另外一篇博客