" GruberDarker Theme for Vim " " Adapted from an Emacs theme: " https://github.com/rexim/gruber-darker-theme " " Colorscheme template: https://github.com/mhartington/oceanic-next/blob/master/colors/OceanicNext.vim " -------------------------------------------- " {{{ Setup set background=dark hi clear if exists("syntax_on") syntax reset endif let g:colors_name="GruberDarker" " }}} " {{{ Italics let g:gruber_terminal_italic = get(g:, 'gruber_terminal_italic', 0) let s:italic = "" if g:gruber_terminal_italic == 1 let s:italic = "italic" endif "}}} " {{{ Bold let g:gruber_terminal_bold = get(g:, 'gruber_terminal_bold', 0) let s:bold = "" if g:gruber_terminal_bold == 1 let s:bold = "bold" endif "}}} " {{{ Colors let s:gruberFG=['#e4e4ef', '253'] let s:gruberFG1=['#f4f4ff', '254'] let s:gruberFG2=['#f5f5ff', '240'] let s:gruberFG3=['#65737e', '243'] let s:gruberWhite=['#ffffff', '15'] let s:gruberBlack=['#000000', '0'] let s:gruberBG=['#181818', '233'] let s:gruberBG1=['#282828', '235'] let s:gruberBG2=['#453d41', '238'] let s:gruberLightRed=['#c73c3f', '203'] let s:gruberRed=['#f43841', '160'] let s:gruberNiagara=['#96a6c8', '147'] let s:gruberQuartz=['#95a99f', '108'] let s:gruberGreen=['#73c936', '70'] let s:gruberMain=['#ffdd33', '220'] let s:gruberBrown=['#cc8c3c', '172'] let s:gruberPurple=['#9e95c7', '98'] let s:gruberLightBlue=['#0087d7', '32'] let s:gruberBlue=['#0000d7', '20'] let s:gruberGold=['#d7af00', '178'] let s:none=['NONE', 'NONE'] " {{{ Highlight function function! hi(group, fg, bg, attr, attrsp) " fg, bg, attr, attrsp if !empty(a:fg) exec "hi " . a:group . " guifg=" . a:fg[0] exec "hi " . a:group . " ctermfg=" . a:fg[1] endif if !empty(a:bg) exec "hi " . a:group . " guibg=" . a:bg[0] exec "hi " . a:group . " ctermbg=" . a:bg[1] endif if a:attr != "" exec "hi " . a:group . " gui=" . a:attr exec "hi " . a:group . " cterm=" . a:attr endif if !empty(a:attrsp) exec "hi " . a:group . " guisp=" . a:attrsp[0] endif endfunction " }}} " {{{ call :hi(group, fg, bg, gui, guisp) call hi('Bold', '', '', 'bold', '') call hi('Debug', s:gruberFG2, '', '', '') call hi('Directory', s:gruberLightBlue, '', '', '') call hi('ErrorMsg', s:gruberWhite, s:gruberRed, '', '') call hi('Exception', s:gruberBrown, '', '', '') call hi('FoldColumn', s:gruberBrown, s:gruberFG2, '', '') call hi('Folded', s:gruberBrown, s:gruberFG2, s:italic, '') call hi('IncSearch', s:gruberBlack, s:gruberFG2, 'NONE', '') call hi('Italic', '', '', s:italic, '') call hi('Macro', s:gruberFG, '', '', '') call hi('MatchParen', s:gruberBG2, s:gruberMain, '', '') call hi('ModeMsg', s:gruberFG2, '', '', '') call hi('MoreMsg', s:gruberFG2, '', '', '') call hi('Question', s:gruberNiagara, '', '', '') call hi('Search', s:gruberBlack, s:gruberMain, '', '') call hi('SpecialKey', s:gruberFG2, '', '', '') call hi('TooLong', s:gruberFG2, '', '', '') call hi('Underlined', s:gruberPurple, '', '', '') call hi('Visual', '', s:gruberBG2, '', '') call hi('VisualNOS', s:gruberRed, '', '', '') call hi('WarningMsg', s:gruberRed, '', '', '') call hi('WildMenu', s:gruberBlack, s:gruberMain, '', '') call hi('Title', s:gruberQuartz, '', '', '') call hi('Conceal', s:gruberFG, s:gruberBG, '', '') call hi('Cursor', s:gruberBG, s:gruberFG, '', '') call hi('NonText', s:gruberFG2, '', '', '') call hi('Normal', s:gruberFG, s:gruberBG, '', '') call hi('EndOfBuffer', s:gruberFG, s:gruberBG, '', '') call hi('LineNr', s:gruberFG, s:gruberBG, '', '') call hi('SignColumn', s:none, s:none, '', '') call hi('VertSplit', s:gruberFG2, s:gruberBG1, '', '') call hi('ColorColumn', '', s:gruberBG2, '', '') call hi('CursorColumn', '', s:gruberBG2, '', '') call hi('CursorLine', '', s:gruberBG2, 'NONE', '') call hi('CursorLineNr', s:gruberMain, s:gruberBG, '', '') call hi('PMenu', s:gruberFG, s:gruberBG1, '', '') call hi('PMenuSel', s:gruberFG, s:gruberBG2, '', '') call hi('PmenuSbar', '', s:gruberBG, '', '') call hi('PmenuThumb', '', s:gruberBG, '', '') call hi('helpExample', s:gruberMain, '', '', '') call hi('helpCommand', s:gruberMain, '', '', '') " Standard syntax highlighting call hi('Boolean', s:gruberQuartz, '', '', '') call hi('Character', s:gruberGreen, '', '', '') call hi('Comment', s:gruberBrown, '', s:italic, '') call hi('Conditional', s:gruberMain, '', '', '') call hi('Constant', s:gruberQuartz, '', '', '') call hi('Define', s:gruberMain, '', '', '') call hi('Delimiter', s:gruberFG, '', '', '') call hi('Float', s:gruberQuartz, '', '', '') call hi('Function', s:gruberNiagara, '', '', '') call hi('Identifier', s:gruberNiagara, '', '', '') call hi('Include', s:gruberMain, '', '', '') call hi('Keyword', s:gruberMain, '', '', '') call hi('Label', s:gruberFG, '', '', '') call hi('Number', s:gruberQuartz, '', '', '') call hi('Operator', s:gruberFG, '', '', '') call hi('PreProc', s:gruberFG1, '', '', '') call hi('Repeat', s:gruberMain, '', '', '') call hi('Special', s:gruberMain, '', '', '') call hi('SpecialChar', s:gruberMain, '', '', '') call hi('Statement', s:gruberMain, '', '', '') call hi('StorageClass', s:gruberMain, '', '', '') call hi('String', s:gruberGreen, '', '', '') call hi('Structure', s:gruberMain, '', '', '') call hi('Todo', s:gruberBG, s:gruberMain, '', '') call hi('Type', s:gruberQuartz, '', '', '') call hi('Typedef', s:gruberQuartz, '', '', '') call hi('SpellBad', '', '', 'undercurl', '') call hi('SpellLocal', '', '', 'undercurl', '') call hi('SpellCap', '', '', 'undercurl', '') call hi('SpellRare', '', '', 'undercurl', '') " Haskell Highlighting call hi('hsTypeDef', s:gruberMain, '', '', '') call hi('hsStructure', s:gruberMain, '', '', '') call hi('hsStatement', s:gruberMain, '', '', '') call hi('hsconditional', s:gruberMain, '', '', '') call hi('hsconditional', s:gruberMain, '', '', '') call hi('hsconditional', s:gruberMain, '', '', '') " Java Highlighting " TODO Fix function definitions call hi('javaConstant', s:gruberQuartz, '', '', '') call hi('javaConditional', s:gruberMain, '', '', '') call hi('javaOperator', s:gruberMain, '', '', '') call hi('javaExceptions', s:gruberMain, '', '', '') call hi('javaAssert', s:gruberMain, '', '', '') call hi('javaClassDecl', s:gruberMain, '', '', '') call hi('javaBraces', s:gruberFG, '', '', '') call hi('javaLangObject', s:gruberFG, '', '', '') call hi('javaType', s:gruberQuartz, '', '', '') " Python Highlighting call hi('pythonRepeat', s:gruberMain, '', '', '') call hi('pythonOperator', s:gruberMain, '', '', '') call hi('pythonException', s:gruberMain, '', '', '') call hi('markdownCode', s:gruberGreen, '', '', '') call hi('markdownCodeBlock', s:gruberGreen, '', '', '') call hi('markdownHeadingDelimiter', s:gruberNiagara, '', '', '') call hi('markdownItalic', s:gruberPurple, '', s:italic, '') call hi('markdownBold', s:gruberMain, '', s:bold, '') call hi('markdownCodeDelimiter', s:gruberBrown, '', s:italic, '') call hi('markdownError', s:gruberFG, s:gruberBG1, '', '') call hi('ALEErrorSign', s:gruberRed, s:gruberBG2, s:bold, '') call hi('ALEWarningSign', s:gruberMain, s:gruberBG2, s:bold, '') call hi('ALEInfoSign', s:gruberGreen, s:gruberBG2, s:bold, '') call hi('NERDTreeExecFile', s:gruberFG, '', '', '') call hi('NERDTreeDirSlash', s:gruberNiagara, '', '', '') call hi('NERDTreeOpenable', s:gruberNiagara, '', '', '') call hi('NERDTreeFile', '', s:none, '', '') call hi('NERDTreeFlags', s:gruberNiagara, '', '', '') call hi('vimfilerLeaf', s:gruberFG, '', '', '') call hi('vimfilerNormalFile', s:gruberFG, s:gruberBG1, '', '') call hi('vimfilerOpenedFile', s:gruberNiagara, '', '', '') call hi('vimfilerClosedFile', s:gruberNiagara, '', '', '') " }}} let g:terminal_color_0=s:gruberBG1[0] let g:terminal_color_8=s:gruberBG1[0] let g:terminal_color_1=s:gruberLightRed[0] let g:terminal_color_9=s:gruberLightRed[0] let g:terminal_color_2=s:gruberGreen[0] let g:terminal_color_10=s:gruberGreen[0] let g:terminal_color_3=s:gruberMain[0] let g:terminal_color_11=s:gruberMain[0] let g:terminal_color_4=s:gruberNiagara[0] let g:terminal_color_12=s:gruberNiagara[0] let g:terminal_color_5=s:gruberPurple[0] let g:terminal_color_13=s:gruberPurple[0] let g:terminal_color_6=s:gruberNiagara[0] let g:terminal_color_14=s:gruberNiagara[0] let g:terminal_color_7=s:gruberFG[0] let g:terminal_color_15=s:gruberFG[0] let g:terminal_color_background=s:gruberBG1[0] let g:terminal_color_foreground=s:gruberWhite[0]