" Vim color file " Maintainer: Sebastian Reichel " modified from the desert256.vim file of Henry So " modified from the nightshade.vim file of Dave Turner " modified from the darkblue.vim file of Bohdan Vlasyuk " elektranox -- nice colors on a dark background set bg=dark hi clear if exists("syntax_on") syntax reset endif let g:colors_name = "elektranox" if has("gui_running") || &t_Co == 88 || &t_Co == 256 " functions {{{ " returns an approximate grey index for the given grey level fun grey_number(x) if &t_Co == 88 if a:x < 23 return 0 elseif a:x < 69 return 1 elseif a:x < 103 return 2 elseif a:x < 127 return 3 elseif a:x < 150 return 4 elseif a:x < 173 return 5 elseif a:x < 196 return 6 elseif a:x < 219 return 7 elseif a:x < 243 return 8 else return 9 endif else if a:x < 14 return 0 else let l:n = (a:x - 8) / 10 let l:m = (a:x - 8) % 10 if l:m < 5 return l:n else return l:n + 1 endif endif endif endfun " returns the actual grey level represented by the grey index fun grey_level(n) if &t_Co == 88 if a:n == 0 return 0 elseif a:n == 1 return 46 elseif a:n == 2 return 92 elseif a:n == 3 return 115 elseif a:n == 4 return 139 elseif a:n == 5 return 162 elseif a:n == 6 return 185 elseif a:n == 7 return 208 elseif a:n == 8 return 231 else return 255 endif else if a:n == 0 return 0 else return 8 + (a:n * 10) endif endif endfun " returns the palette index for the given grey index fun grey_color(n) if &t_Co == 88 if a:n == 0 return 16 elseif a:n == 9 return 79 else return 79 + a:n endif else if a:n == 0 return 16 elseif a:n == 25 return 231 else return 231 + a:n endif endif endfun " returns an approximate color index for the given color level fun rgb_number(x) if &t_Co == 88 if a:x < 69 return 0 elseif a:x < 172 return 1 elseif a:x < 230 return 2 else return 3 endif else if a:x < 75 return 0 else let l:n = (a:x - 55) / 40 let l:m = (a:x - 55) % 40 if l:m < 20 return l:n else return l:n + 1 endif endif endif endfun " returns the actual color level for the given color index fun rgb_level(n) if &t_Co == 88 if a:n == 0 return 0 elseif a:n == 1 return 139 elseif a:n == 2 return 205 else return 255 endif else if a:n == 0 return 0 else return 55 + (a:n * 40) endif endif endfun " returns the palette index for the given R/G/B color indices fun rgb_color(x, y, z) if &t_Co == 88 return 16 + (a:x * 16) + (a:y * 4) + a:z else return 16 + (a:x * 36) + (a:y * 6) + a:z endif endfun " returns the palette index to approximate the given R/G/B color levels fun color(r, g, b) " get the closest grey let l:gx = grey_number(a:r) let l:gy = grey_number(a:g) let l:gz = grey_number(a:b) " get the closest color let l:x = rgb_number(a:r) let l:y = rgb_number(a:g) let l:z = rgb_number(a:b) if l:gx == l:gy && l:gy == l:gz " there are two possibilities let l:dgr = grey_level(l:gx) - a:r let l:dgg = grey_level(l:gy) - a:g let l:dgb = grey_level(l:gz) - a:b let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) let l:dr = rgb_level(l:gx) - a:r let l:dg = rgb_level(l:gy) - a:g let l:db = rgb_level(l:gz) - a:b let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) if l:dgrey < l:drgb " use the grey return grey_color(l:gx) else " use the color return rgb_color(l:x, l:y, l:z) endif else " only one possibility return rgb_color(l:x, l:y, l:z) endif endfun " returns the palette index to approximate the 'rrggbb' hex string fun rgb(rgb) let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 return color(l:r, l:g, l:b) endfun " sets the highlighting for the given group fun X(group, fg, bg, attr) if a:fg != "" exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . rgb(a:fg) endif if a:bg != "" exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . rgb(a:bg) endif if a:attr != "" exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr endif endfun " }}} " gui color definition call X("Normal", "cccccc", "000000", "") " highlight groups call X("Cursor", "708090", "f0e68c", "") "CursorIM "Directory "DiffAdd "DiffChange "DiffDelete "DiffText "ErrorMsg call X("VertSplit", "c2bfa5", "7f7f7f", "reverse") call X("Folded", "ffd700", "4d4d4d", "") call X("FoldColumn", "d2b48c", "4d4d4d", "") call X("IncSearch", "708090", "f0e68c", "") "LineNr call X("ModeMsg", "daa520", "", "") call X("MoreMsg", "2e8b57", "", "") call X("NonText", "addbe7", "000000", "bold") call X("Question", "00ff7f", "", "") call X("Search", "ffffff", "D09000", "bold") call X("SpecialKey", "9acd32", "", "") call X("StatusLine", "c2bfa5", "000000", "reverse") call X("StatusLineNC", "c2bfa5", "7f7f7f", "reverse") call X("Title", "cd5c5c", "", "") call X("Visual", "6b8e23", "f0e68c", "reverse") "VisualNOS call X("WarningMsg", "fa8072", "", "") "WildMenu "Menu "Scrollbar "Tooltip " syntax highlighting groups call X("Comment", "8888FF", "", "") call X("Constant", "FF00FF", "", "bold") call X("String", "CB1616", "", "") call X("Special", "CB1616", "", "") call X("Identifier", "FF0000", "", "none") call X("Statement", "FFFF55", "", "bold") call X("PreProc", "007700", "", "") call X("Type", "55FF55", "", "bold") call X("Label", "00FFFF", "", "bold") call X("Operator", "FFFF55", "", "bold") call X("Number", "FF00FF", "", "bold") call X("Function", "00FF00", "", "bold") call X("IO", "FF0000", "", "bold") call X("Communicator", "FFFFFF", "", "bold") call X("UnitHeader", "00FFFF", "", "bold") call X("Macro", "00FF00", "", "bold") call X("Keyword", "FF0000", "", "bold") call X("DiffAdd", "00FF00", "", "bold") call X("DiffChange", "EEEE00", "", "bold") call X("DiffDelete", "CB1616", "", "bold") call X("DiffText", "FFFFFF", "", "bold") "Underlined call X("Ignore", "666666", "", "") "Error call X("Todo", "eeee00", "000000", "bold") call X("Visual", "1111DD", "", "reverse") " Patch files call X("Special", "FF0000", "", "") call X("Identifier", "00FF00", "", "") " delete functions {{{ delf X delf rgb delf color delf rgb_color delf rgb_level delf rgb_number delf grey_color delf grey_level delf grey_number " }}} else hi Normal ctermfg=gray ctermbg=black guifg=#DDDDDD guibg=#111111 hi ErrorMsg ctermfg=white ctermbg=lightblue guifg=#FFFFFF guibg=#111111 hi Visual ctermfg=lightblue ctermbg=fg cterm=reverse guifg=#1111DD guibg=fg hi VisualNOS ctermfg=lightblue ctermbg=fg cterm=reverse,underline guifg=#1111DD guibg=fg hi Todo ctermfg=Yellow ctermbg=bg cterm=bold guifg=#FFFF55 guibg=bg hi Search ctermfg=white ctermbg=yellow guifg=#000000 guibg=#FFFF55 hi IncSearch ctermfg=yellow ctermbg=bg guifg=#FFFF55 guibg=bg hi SpecialKey ctermfg=darkcyan guifg=#008B8B guibg=bg hi Directory ctermfg=cyan guifg=#00FFFF guibg=bg hi Title ctermfg=magenta cterm=bold guifg=#FF00FF guibg=bg hi WarningMsg ctermfg=red guifg=#FF0000 guibg=bg hi WildMenu ctermfg=yellow ctermbg=black cterm=none term=none guifg=#FFFF00 guibg=#000000 hi ModeMsg ctermfg=lightblue guifg=#1111DD guibg=bg hi MoreMsg ctermfg=darkgreen guifg=#00FF00 guibg=bg hi Question ctermfg=green cterm=none guifg=#00FF00 guibg=bg hi NonText ctermfg=darkblue guifg=#0042BA guibg=bg hi StatusLine ctermfg=blue ctermbg=gray term=none cterm=none guifg=#000000 guibg=#888888 hi StatusLineNC ctermfg=black ctermbg=gray term=none cterm=none guifg=#000000 guibg=#888888 hi VertSplit ctermfg=black ctermbg=gray term=none cterm=none guifg=#000000 guibg=#DDDDDD hi Folded ctermfg=blue ctermbg=bg cterm=bold term=bold guifg=#8888FF guibg=bg hi FoldColumn ctermfg=blue ctermbg=bg cterm=bold term=bold guifg=#8888FF guibg=bg hi LineNr ctermfg=green cterm=none guifg=#00FF00 guibg=bg hi DiffAdd term=none cterm=none gui=none hi DiffChange ctermbg=magenta cterm=none guifg=#FF00FF guibg=bg hi DiffDelete ctermfg=blue ctermbg=cyan guifg=#0000FF guibg=bg hi DiffText cterm=bold ctermbg=red guifg=fg guibg=#FF0000 hi Comment ctermfg=blue term=italic guifg=#8888FF guibg=bg hi Constant ctermfg=lightMagenta guifg=#FF00FF guibg=bg hi String ctermfg=darkRed guifg=#CB1616 guibg=bg hi Special ctermfg=darkRed guifg=#CB1616 guibg=bg hi Identifier ctermfg=Red guifg=#FF0000 guibg=bg hi Statement ctermfg=Yellow guifg=#FFFF55 guibg=bg hi PreProc ctermfg=DarkGreen guifg=#006400 guibg=bg hi type ctermfg=LightGreen guifg=#55FF55 guibg=bg hi Label ctermfg=Cyan guifg=#00FFFF guibg=bg hi Operator ctermfg=Yellow guifg=#FFFF55 guibg=bg hi Number ctermfg=lightMagenta guifg=#FF00FF guibg=bg hi Function ctermfg=Green guifg=#00FF00 guibg=bg hi IO ctermfg=Red guifg=#FF0000 guibg=bg hi Communicator ctermfg=Black guifg=#FFFFFF guibg=bg hi UnitHeader ctermfg=Cyan guifg=#00FFFF guibg=bg hi Macro ctermfg=Green guifg=#00FF00 guibg=bg hi Keyword ctermfg=Red guifg=#FF0000 guibg=bg hi Underlined ctermfg=White cterm=underline term=underline hi Ignore ctermfg=bg " dropdown menu hi Pmenu ctermfg=Black ctermbg=White guifg=#000000 guibg=#FFFFFF hi PMenuSel ctermfg=DarkBlue ctermbg=White guifg=#00008B guibg=#FFFFFF endif " vim: set fdl=0 fdm=marker: