summaryrefslogtreecommitdiff
path: root/.vim
diff options
context:
space:
mode:
authorJohannes <stoelp@rhrk.uni-kl.de>2016-04-17 22:07:05 +0200
committerJohannes <stoelp@rhrk.uni-kl.de>2016-04-17 22:07:05 +0200
commitb8fcb00d119f1be4381b445e9c62ea3d39d1b5b5 (patch)
treef2964a4ea50d03a3109fb82d0537b554fdd7568b /.vim
parent26762bd5c324ea62db6ea57de59435cd80d91c66 (diff)
downloaddotfiles-b8fcb00d119f1be4381b445e9c62ea3d39d1b5b5.tar.gz
dotfiles-b8fcb00d119f1be4381b445e9c62ea3d39d1b5b5.zip
Added initial vimrc and vimcolors and xterm resource file
Diffstat (limited to '.vim')
-rwxr-xr-x.vim/colors/buddy.vim100
-rw-r--r--.vim/colors/gruvbox.vim1218
-rw-r--r--.vim/colors/pride.vim180
-rw-r--r--.vim/colors/scheakur.vim130
-rw-r--r--.vim/colors/solarized.vim1119
5 files changed, 2747 insertions, 0 deletions
diff --git a/.vim/colors/buddy.vim b/.vim/colors/buddy.vim
new file mode 100755
index 0000000..ba8e4f9
--- /dev/null
+++ b/.vim/colors/buddy.vim
@@ -0,0 +1,100 @@
+" Vim color file - buddy_modified
+" Generated by http://bytefluent.com/vivify 2015-10-13
+set background=dark
+if version > 580
+ hi clear
+ if exists("syntax_on")
+ syntax reset
+ endif
+endif
+
+set t_Co=256
+let g:colors_name = "buddy_modified"
+
+"hi IncSearch -- no settings --
+"hi WildMenu -- no settings --
+"hi SignColumn -- no settings --
+"hi CTagsMember -- no settings --
+"hi CTagsGlobalConstant -- no settings --
+"hi ErrorMsg -- no settings --
+"hi Ignore -- no settings --
+hi Normal guifg=#d9d9d9 guibg=#202020 guisp=#202020 gui=NONE ctermfg=253 ctermbg=234 cterm=NONE
+"hi CTagsImport -- no settings --
+"hi Search -- no settings --
+"hi CTagsGlobalVariable -- no settings --
+"hi SpellRare -- no settings --
+"hi EnumerationValue -- no settings --
+"hi TabLineSel -- no settings --
+"hi Union -- no settings --
+"hi TabLineFill -- no settings --
+"hi Question -- no settings --
+"hi WarningMsg -- no settings --
+"hi VisualNOS -- no settings --
+"hi ModeMsg -- no settings --
+"hi FoldColumn -- no settings --
+"hi EnumerationName -- no settings --
+"hi MoreMsg -- no settings --
+"hi SpellCap -- no settings --
+"hi DiffChange -- no settings --
+"hi SpellLocal -- no settings --
+"hi Error -- no settings --
+"hi DefinedName -- no settings --
+"hi LocalVariable -- no settings --
+"hi SpellBad -- no settings --
+"hi CTagsClass -- no settings --
+"hi Directory -- no settings --
+"hi Underlined -- no settings --
+"hi TabLine -- no settings --
+"hi clear -- no settings --
+hi SpecialComment guifg=#f3cf64 guibg=NONE guisp=NONE gui=NONE ctermfg=221 ctermbg=NONE cterm=NONE
+hi Typedef guifg=#fff200 guibg=NONE guisp=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE
+hi Title guifg=#fffcf0 guibg=NONE guisp=NONE gui=bold ctermfg=230 ctermbg=NONE cterm=bold
+hi Folded guifg=#b8c1ca guibg=#384048 guisp=#384048 gui=NONE ctermfg=146 ctermbg=238 cterm=NONE
+hi PreCondit guifg=#c25643 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE
+hi Include guifg=#c25643 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE
+hi Float guifg=#e66450 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE
+hi StatusLineNC guifg=#9f9385 guibg=#444444 guisp=#444444 gui=NONE ctermfg=144 ctermbg=238 cterm=NONE
+hi NonText guifg=#9a9a9a guibg=#303030 guisp=#303030 gui=NONE ctermfg=247 ctermbg=236 cterm=NONE
+hi DiffText guifg=NONE guibg=#575757 guisp=#575757 gui=NONE ctermfg=NONE ctermbg=240 cterm=NONE
+hi Debug guifg=#f0ffe2 guibg=NONE guisp=NONE gui=NONE ctermfg=194 ctermbg=NONE cterm=NONE
+hi PMenuSbar guifg=NONE guibg=#000000 guisp=#000000 gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Identifier guifg=#f3cf64 guibg=NONE guisp=NONE gui=NONE ctermfg=221 ctermbg=NONE cterm=NONE
+hi SpecialChar guifg=#b5eeff guibg=NONE guisp=NONE gui=NONE ctermfg=159 ctermbg=NONE cterm=NONE
+hi Conditional guifg=#fff200 guibg=NONE guisp=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE
+hi StorageClass guifg=#f0911d guibg=NONE guisp=NONE gui=NONE ctermfg=208 ctermbg=NONE cterm=NONE
+hi Todo guifg=#a9a9a9 guibg=NONE guisp=NONE gui=italic ctermfg=248 ctermbg=NONE cterm=NONE
+hi Special guifg=#f3cf64 guibg=NONE guisp=NONE gui=NONE ctermfg=221 ctermbg=NONE cterm=NONE
+hi LineNr guifg=#4d4d4d guibg=#1d1d1d guisp=#1d1d1d gui=NONE ctermfg=239 ctermbg=234 cterm=NONE
+hi StatusLine guifg=#fffcf0 guibg=#444444 guisp=#444444 gui=italic ctermfg=230 ctermbg=238 cterm=NONE
+hi Label guifg=#f3cf64 guibg=NONE guisp=NONE gui=NONE ctermfg=221 ctermbg=NONE cterm=NONE
+hi PMenuSel guifg=#1a1a1a guibg=#e6cd83 guisp=#e6cd83 gui=NONE ctermfg=234 ctermbg=180 cterm=NONE
+hi Delimiter guifg=#f0ffe2 guibg=NONE guisp=NONE gui=NONE ctermfg=194 ctermbg=NONE cterm=NONE
+hi Statement guifg=#ffdd00 guibg=NONE guisp=NONE gui=NONE ctermfg=220 ctermbg=NONE cterm=NONE
+hi Comment guifg=#b3b0a3 guibg=NONE guisp=NONE gui=italic ctermfg=144 ctermbg=NONE cterm=NONE
+hi Character guifg=#e66450 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE
+hi Number guifg=#e66450 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE
+hi Boolean guifg=#fff200 guibg=NONE guisp=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE
+hi Operator guifg=#fff200 guibg=NONE guisp=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#2d2d2d guisp=#2d2d2d gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE
+hi DiffDelete guifg=NONE guibg=#8a3636 guisp=#8a3636 gui=NONE ctermfg=NONE ctermbg=95 cterm=NONE
+hi CursorColumn guifg=NONE guibg=#2d2d2d guisp=#2d2d2d gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE
+hi Define guifg=#c25643 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE
+hi Function guifg=#f0811f guibg=NONE guisp=NONE gui=NONE ctermfg=208 ctermbg=NONE cterm=NONE
+hi PreProc guifg=#cc442f guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE
+hi Visual guifg=#fffcf0 guibg=#444444 guisp=#444444 gui=NONE ctermfg=230 ctermbg=238 cterm=NONE
+hi VertSplit guifg=#5e5e5e guibg=#444444 guisp=#444444 gui=NONE ctermfg=59 ctermbg=238 cterm=NONE
+hi Exception guifg=#fff200 guibg=NONE guisp=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE
+hi Keyword guifg=#fff200 guibg=NONE guisp=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE
+hi Type guifg=#ffb700 guibg=NONE guisp=NONE gui=NONE ctermfg=214 ctermbg=NONE cterm=NONE
+hi Cursor guifg=NONE guibg=#656565 guisp=#656565 gui=NONE ctermfg=NONE ctermbg=241 cterm=NONE
+hi PMenu guifg=#fffcf0 guibg=#444444 guisp=#444444 gui=NONE ctermfg=230 ctermbg=238 cterm=NONE
+hi SpecialKey guifg=#9a9a9a guibg=#343434 guisp=#343434 gui=NONE ctermfg=247 ctermbg=236 cterm=NONE
+hi Constant guifg=#e66450 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE
+hi Tag guifg=#f0ffe2 guibg=NONE guisp=NONE gui=NONE ctermfg=194 ctermbg=NONE cterm=NONE
+hi String guifg=#5dd2fd guibg=NONE guisp=NONE gui=NONE ctermfg=81 ctermbg=NONE cterm=NONE
+hi PMenuThumb guifg=NONE guibg=#857b6f guisp=#857b6f gui=NONE ctermfg=NONE ctermbg=101 cterm=NONE
+hi MatchParen guifg=#fffcf0 guibg=#857b6f guisp=#857b6f gui=bold ctermfg=230 ctermbg=101 cterm=bold
+hi Repeat guifg=#fff200 guibg=NONE guisp=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE
+hi Structure guifg=#ffb700 guibg=NONE guisp=NONE gui=NONE ctermfg=214 ctermbg=NONE cterm=NONE
+hi Macro guifg=#c25643 guibg=NONE guisp=NONE gui=NONE ctermfg=167 ctermbg=NONE cterm=NONE
+hi DiffAdd guifg=NONE guibg=#5b802c guisp=#5b802c gui=NONE ctermfg=NONE ctermbg=2 cterm=NONE
diff --git a/.vim/colors/gruvbox.vim b/.vim/colors/gruvbox.vim
new file mode 100644
index 0000000..fe3835c
--- /dev/null
+++ b/.vim/colors/gruvbox.vim
@@ -0,0 +1,1218 @@
+" -----------------------------------------------------------------------------
+" File: gruvbox.vim
+" Description: Retro groove color scheme for Vim
+" Author: morhetz <morhetz@gmail.com>
+" Source: https://github.com/morhetz/gruvbox
+" Last Modified: 04 Sep 2015
+" -----------------------------------------------------------------------------
+
+" Supporting code -------------------------------------------------------------
+" Initialisation: {{{
+
+if version > 580
+ hi clear
+ if exists("syntax_on")
+ syntax reset
+ endif
+endif
+
+let g:colors_name='gruvbox'
+
+if !has('gui_running') && &t_Co != 256
+ finish
+endif
+
+" }}}
+" Global Settings: {{{
+
+if !exists('g:gruvbox_bold')
+ let g:gruvbox_bold=1
+endif
+if !exists('g:gruvbox_italic')
+ if has('gui_running') || $TERM_ITALICS == 'true'
+ let g:gruvbox_italic=1
+ else
+ let g:gruvbox_italic=0
+ endif
+endif
+if !exists('g:gruvbox_undercurl')
+ let g:gruvbox_undercurl=1
+endif
+if !exists('g:gruvbox_underline')
+ let g:gruvbox_underline=1
+endif
+if !exists('g:gruvbox_inverse')
+ let g:gruvbox_inverse=1
+endif
+
+if !exists('g:gruvbox_guisp_fallback') || index(['fg', 'bg'], g:gruvbox_guisp_fallback) == -1
+ let g:gruvbox_guisp_fallback='NONE'
+endif
+
+if !exists('g:gruvbox_improved_strings')
+ let g:gruvbox_improved_strings=0
+endif
+
+if !exists('g:gruvbox_improved_warnings')
+ let g:gruvbox_improved_warnings=0
+endif
+
+if !exists('g:gruvbox_termcolors')
+ let g:gruvbox_termcolors=256
+endif
+
+if !exists('g:gruvbox_invert_indent_guides')
+ let g:gruvbox_invert_indent_guides=0
+endif
+
+if exists('g:gruvbox_contrast')
+ echo 'g:gruvbox_contrast is deprecated; use g:gruvbox_contrast_light and g:gruvbox_contrast_dark instead'
+endif
+
+if !exists('g:gruvbox_contrast_dark')
+ let g:gruvbox_contrast_dark='medium'
+endif
+
+if !exists('g:gruvbox_contrast_light')
+ let g:gruvbox_contrast_light='medium'
+endif
+
+let s:is_dark=(&background == 'dark')
+
+" }}}
+" Palette: {{{
+
+" setup palette dictionary
+let s:gb = {}
+
+" fill it with absolute colors
+let s:gb.dark0_hard = ['#1d2021', 234] " 29-32-33
+let s:gb.dark0 = ['#282828', 235] " 40-40-40
+let s:gb.dark0_soft = ['#32302f', 236] " 50-48-47
+let s:gb.dark1 = ['#3c3836', 237] " 60-56-54
+let s:gb.dark2 = ['#504945', 239] " 80-73-69
+let s:gb.dark3 = ['#665c54', 241] " 102-92-84
+let s:gb.dark4 = ['#7c6f64', 243] " 124-111-100
+let s:gb.dark4_256 = ['#7c6f64', 243] " 124-111-100
+
+let s:gb.gray_245 = ['#928374', 245] " 146-131-116
+let s:gb.gray_244 = ['#928374', 244] " 146-131-116
+
+let s:gb.light0_hard = ['#f9f5d7', 230] " 249-245-215
+let s:gb.light0 = ['#fdf4c1', 229] " 253-244-193
+let s:gb.light0_soft = ['#f2e5bc', 228] " 242-229-188
+let s:gb.light1 = ['#ebdbb2', 223] " 235-219-178
+let s:gb.light2 = ['#d5c4a1', 250] " 213-196-161
+let s:gb.light3 = ['#bdae93', 248] " 189-174-147
+let s:gb.light4 = ['#a89984', 246] " 168-153-132
+let s:gb.light4_256 = ['#a89984', 246] " 168-153-132
+
+let s:gb.bright_red = ['#fb4934', 167] " 251-73-52
+let s:gb.bright_green = ['#b8bb26', 142] " 184-187-38
+let s:gb.bright_yellow = ['#fabd2f', 214] " 250-189-47
+let s:gb.bright_blue = ['#83a598', 109] " 131-165-152
+let s:gb.bright_purple = ['#d3869b', 175] " 211-134-155
+let s:gb.bright_aqua = ['#8ec07c', 108] " 142-192-124
+let s:gb.bright_orange = ['#fe8019', 208] " 254-128-25
+
+let s:gb.neutral_red = ['#cc241d', 124] " 204-36-29
+let s:gb.neutral_green = ['#98971a', 106] " 152-151-26
+let s:gb.neutral_yellow = ['#d79921', 172] " 215-153-33
+let s:gb.neutral_blue = ['#458588', 66] " 69-133-136
+let s:gb.neutral_purple = ['#b16286', 132] " 177-98-134
+let s:gb.neutral_aqua = ['#689d6a', 72] " 104-157-106
+let s:gb.neutral_orange = ['#d65d0e', 166] " 214-93-14
+
+let s:gb.faded_red = ['#9d0006', 88] " 157-0-6
+let s:gb.faded_green = ['#79740e', 100] " 121-116-14
+let s:gb.faded_yellow = ['#b57614', 136] " 181-118-20
+let s:gb.faded_blue = ['#076678', 24] " 7-102-120
+let s:gb.faded_purple = ['#8f3f71', 96] " 143-63-113
+let s:gb.faded_aqua = ['#427b58', 66] " 66-123-88
+let s:gb.faded_orange = ['#af3a03', 130] " 175-58-3
+
+" }}}
+" Setup Emphasis: {{{
+
+let s:bold = 'bold,'
+if g:gruvbox_bold == 0
+ let s:bold = ''
+endif
+
+let s:italic = 'italic,'
+if g:gruvbox_italic == 0
+ let s:italic = ''
+endif
+
+let s:underline = 'underline,'
+if g:gruvbox_underline == 0
+ let s:underline = ''
+endif
+
+let s:undercurl = 'undercurl,'
+if g:gruvbox_undercurl == 0
+ let s:undercurl = ''
+endif
+
+let s:inverse = 'inverse,'
+if g:gruvbox_inverse == 0
+ let s:inverse = ''
+endif
+
+" }}}
+" Setup Colors: {{{
+
+let s:vim_bg = ['bg', 'bg']
+let s:vim_fg = ['fg', 'fg']
+let s:none = ['NONE', 'NONE']
+
+" determine relative colors
+if s:is_dark
+ let s:bg0 = s:gb.dark0
+ if g:gruvbox_contrast_dark == 'soft'
+ let s:bg0 = s:gb.dark0_soft
+ elseif g:gruvbox_contrast_dark == 'hard'
+ let s:bg0 = s:gb.dark0_hard
+ endif
+
+ let s:bg1 = s:gb.dark1
+ let s:bg2 = s:gb.dark2
+ let s:bg3 = s:gb.dark3
+ let s:bg4 = s:gb.dark4
+
+ let s:gray = s:gb.gray_245
+
+ let s:fg0 = s:gb.light0
+ let s:fg1 = s:gb.light1
+ let s:fg2 = s:gb.light2
+ let s:fg3 = s:gb.light3
+ let s:fg4 = s:gb.light4
+
+ let s:fg4_256 = s:gb.light4_256
+
+ let s:red = s:gb.bright_red
+ let s:green = s:gb.bright_green
+ let s:yellow = s:gb.bright_yellow
+ let s:blue = s:gb.bright_blue
+ let s:purple = s:gb.bright_purple
+ let s:aqua = s:gb.bright_aqua
+ let s:orange = s:gb.bright_orange
+else
+ let s:bg0 = s:gb.light0
+ if g:gruvbox_contrast_light == 'soft'
+ let s:bg0 = s:gb.light0_soft
+ elseif g:gruvbox_contrast_light == 'hard'
+ let s:bg0 = s:gb.light0_hard
+ endif
+
+ let s:bg1 = s:gb.light1
+ let s:bg2 = s:gb.light2
+ let s:bg3 = s:gb.light3
+ let s:bg4 = s:gb.light4
+
+ let s:gray = s:gb.gray_244
+
+ let s:fg0 = s:gb.dark0
+ let s:fg1 = s:gb.dark1
+ let s:fg2 = s:gb.dark2
+ let s:fg3 = s:gb.dark3
+ let s:fg4 = s:gb.dark4
+
+ let s:fg4_256 = s:gb.dark4_256
+
+ let s:red = s:gb.faded_red
+ let s:green = s:gb.faded_green
+ let s:yellow = s:gb.faded_yellow
+ let s:blue = s:gb.faded_blue
+ let s:purple = s:gb.faded_purple
+ let s:aqua = s:gb.faded_aqua
+ let s:orange = s:gb.faded_orange
+endif
+
+" reset to 16 colors fallback
+if g:gruvbox_termcolors == 16
+ let s:bg0[1] = 0
+ let s:fg4[1] = 7
+ let s:gray[1] = 8
+ let s:red[1] = 9
+ let s:green[1] = 10
+ let s:yellow[1] = 11
+ let s:blue[1] = 12
+ let s:purple[1] = 13
+ let s:aqua[1] = 14
+ let s:fg1[1] = 15
+endif
+
+" save current relative colors back to palette dictionary
+let s:gb.bg0 = s:bg0
+let s:gb.bg1 = s:bg1
+let s:gb.bg2 = s:bg2
+let s:gb.bg3 = s:bg3
+let s:gb.bg4 = s:bg4
+
+let s:gb.gray = s:gray
+
+let s:gb.fg0 = s:fg0
+let s:gb.fg1 = s:fg1
+let s:gb.fg2 = s:fg2
+let s:gb.fg3 = s:fg3
+let s:gb.fg4 = s:fg4
+
+let s:gb.fg4_256 = s:fg4_256
+
+let s:gb.red = s:red
+let s:gb.green = s:green
+let s:gb.yellow = s:yellow
+let s:gb.blue = s:blue
+let s:gb.purple = s:purple
+let s:gb.aqua = s:aqua
+let s:gb.orange = s:orange
+
+" }}}
+
+" Overload Setting: {{{
+
+let s:hls_cursor = s:orange
+if exists('g:gruvbox_hls_cursor')
+ let s:hls_cursor = get(s:gb, g:gruvbox_hls_cursor)
+endif
+
+let s:number_column = s:bg4
+let s:sign_column = s:bg1
+
+if exists('g:gitgutter_override_sign_column_highlight') &&
+ \ g:gitgutter_override_sign_column_highlight == 1
+ let s:sign_column = s:number_column
+else
+ let g:gitgutter_override_sign_column_highlight = 0
+
+ if exists('g:gruvbox_sign_column')
+ let s:sign_column = get(s:gb, g:gruvbox_sign_column)
+ endif
+endif
+
+let s:color_column = s:bg1
+if exists('g:gruvbox_color_column')
+ let s:color_column = get(s:gb, g:gruvbox_color_column)
+endif
+
+let s:vert_split = s:bg2
+if exists('g:gruvbox_vert_split')
+ let s:vert_split = get(s:gb, g:gruvbox_vert_split)
+endif
+
+let s:invert_signs = ''
+if exists('g:gruvbox_invert_signs')
+ if g:gruvbox_invert_signs == 1
+ let s:invert_signs = s:inverse
+ endif
+endif
+
+let s:invert_selection = s:inverse
+if exists('g:gruvbox_invert_selection')
+ if g:gruvbox_invert_selection == 0
+ let s:invert_selection = ''
+ endif
+endif
+
+let s:invert_tabline = ''
+if exists('g:gruvbox_invert_tabline')
+ if g:gruvbox_invert_tabline == 1
+ let s:invert_tabline = s:inverse
+ endif
+endif
+
+let s:italicize_comments = s:italic
+if exists('g:gruvbox_italicize_comments')
+ if g:gruvbox_italicize_comments == 0
+ let s:italicize_comments = ''
+ endif
+endif
+
+let s:italicize_strings = ''
+if exists('g:gruvbox_italicize_strings')
+ if g:gruvbox_italicize_strings == 1
+ let s:italicize_strings = s:italic
+ endif
+endif
+
+" }}}
+" Highlighting Function: {{{
+
+function! s:HL(group, fg, ...)
+ " Arguments: group, guifg, guibg, gui, guisp
+
+ " foreground
+ let fg = a:fg
+
+ " background
+ if a:0 >= 1
+ let bg = a:1
+ else
+ let bg = s:none
+ endif
+
+ " emphasis
+ if a:0 >= 2 && strlen(a:2)
+ let emstr = a:2
+ else
+ let emstr = 'NONE,'
+ endif
+
+ " special fallback
+ if a:0 >= 3
+ if g:gruvbox_guisp_fallback != 'NONE'
+ let fg = a:3
+ endif
+
+ " bg fallback mode should invert higlighting
+ if g:gruvbox_guisp_fallback == 'bg'
+ let emstr .= 'inverse,'
+ endif
+ endif
+
+ let histring = [ 'hi', a:group,
+ \ 'guifg=' . fg[0], 'ctermfg=' . fg[1],
+ \ 'guibg=' . bg[0], 'ctermbg=' . bg[1],
+ \ 'gui=' . emstr[:-2], 'cterm=' . emstr[:-2]
+ \ ]
+
+ " special
+ if a:0 >= 3
+ call add(histring, 'guisp=' . a:3[0])
+ endif
+
+ execute join(histring, ' ')
+endfunction
+
+" }}}
+" Gruvbox Hi Groups: {{{
+
+" memoize common hi groups
+call s:HL('GruvboxFg0', s:fg0)
+call s:HL('GruvboxFg1', s:fg1)
+call s:HL('GruvboxFg2', s:fg2)
+call s:HL('GruvboxFg3', s:fg3)
+call s:HL('GruvboxFg4', s:fg4)
+call s:HL('GruvboxGray', s:gray)
+call s:HL('GruvboxBg0', s:bg0)
+call s:HL('GruvboxBg1', s:bg1)
+call s:HL('GruvboxBg2', s:bg2)
+call s:HL('GruvboxBg3', s:bg3)
+call s:HL('GruvboxBg4', s:bg4)
+
+call s:HL('GruvboxRed', s:red)
+call s:HL('GruvboxRedBold', s:red, s:none, s:bold)
+call s:HL('GruvboxGreen', s:green)
+call s:HL('GruvboxGreenBold', s:green, s:none, s:bold)
+call s:HL('GruvboxYellow', s:yellow)
+call s:HL('GruvboxYellowBold', s:yellow, s:none, s:bold)
+call s:HL('GruvboxBlue', s:blue)
+call s:HL('GruvboxBlueBold', s:blue, s:none, s:bold)
+call s:HL('GruvboxPurple', s:purple)
+call s:HL('GruvboxPurpleBold', s:purple, s:none, s:bold)
+call s:HL('GruvboxAqua', s:aqua)
+call s:HL('GruvboxAquaBold', s:aqua, s:none, s:bold)
+call s:HL('GruvboxOrange', s:orange)
+call s:HL('GruvboxOrangeBold', s:orange, s:none, s:bold)
+
+call s:HL('GruvboxRedSign', s:red, s:sign_column, s:invert_signs)
+call s:HL('GruvboxGreenSign', s:green, s:sign_column, s:invert_signs)
+call s:HL('GruvboxYellowSign', s:yellow, s:sign_column, s:invert_signs)
+call s:HL('GruvboxBlueSign', s:blue, s:sign_column, s:invert_signs)
+call s:HL('GruvboxPurpleSign', s:purple, s:sign_column, s:invert_signs)
+call s:HL('GruvboxAquaSign', s:aqua, s:sign_column, s:invert_signs)
+
+" }}}
+
+" Vanilla colorscheme ---------------------------------------------------------
+" General UI: {{{
+
+" Normal text
+call s:HL('Normal', s:fg1, s:bg0)
+
+" Correct background (see issue #7):
+" --- Problem with changing between dark and light on 256 color terminal
+" --- https://github.com/morhetz/gruvbox/issues/7
+if s:is_dark
+ set background=dark
+else
+ set background=light
+endif
+
+if version >= 700
+ " Screen line that the cursor is
+ call s:HL('CursorLine', s:none, s:bg1)
+ " Screen column that the cursor is
+ hi! link CursorColumn CursorLine
+
+ " Tab pages line filler
+ call s:HL('TabLineFill', s:bg4, s:vim_bg, s:invert_tabline)
+ " Active tab page label
+ call s:HL('TabLineSel', s:vim_bg, s:bg4, s:bold . s:invert_tabline)
+ " Not active tab page label
+ hi! link TabLine TabLineFill
+
+ " Match paired bracket under the cursor
+ call s:HL('MatchParen', s:none, s:bg3, s:bold)
+endif
+
+if version >= 703
+ " Highlighted screen columns
+ call s:HL('ColorColumn', s:none, s:color_column)
+
+ " Concealed element: \lambda → λ
+ call s:HL('Conceal', s:blue, s:none)
+
+ " Line number of CursorLine
+ call s:HL('CursorLineNr', s:yellow, s:bg1)
+endif
+
+hi! link NonText GruvboxBg2
+hi! link SpecialKey GruvboxBg2
+
+call s:HL('Visual', s:none, s:bg3, s:invert_selection)
+hi! link VisualNOS Visual
+
+call s:HL('Search', s:bg0, s:yellow)
+call s:HL('IncSearch', s:bg0, s:hls_cursor)
+
+call s:HL('Underlined', s:blue, s:none, s:underline)
+
+call s:HL('StatusLine', s:bg4, s:bg0, s:bold . s:inverse)
+call s:HL('StatusLineNC', s:bg2, s:fg4, s:bold . s:inverse)
+
+" The column separating vertically split windows
+call s:HL('VertSplit', s:fg4, s:vert_split)
+
+" Current match in wildmenu completion
+call s:HL('WildMenu', s:blue, s:bg2, s:bold)
+
+" Directory names, special names in listing
+hi! link Directory GruvboxGreenBold
+
+" Titles for output from :set all, :autocmd, etc.
+hi! link Title GruvboxGreenBold
+
+" Error messages on the command line
+call s:HL('ErrorMsg', s:vim_bg, s:red, s:bold)
+" More prompt: -- More --
+hi! link MoreMsg GruvboxYellowBold
+" Current mode message: -- INSERT --
+hi! link ModeMsg GruvboxYellowBold
+" 'Press enter' prompt and yes/no questions
+hi! link Question GruvboxOrangeBold
+" Warning messages
+hi! link WarningMsg GruvboxRedBold
+
+" }}}
+" Gutter: {{{
+
+" Line number for :number and :# commands
+call s:HL('LineNr', s:number_column)
+
+" Column where signs are displayed
+call s:HL('SignColumn', s:none, s:sign_column)
+
+" Line used for closed folds
+call s:HL('Folded', s:gray, s:bg1, s:italic)
+" Column where folds are displayed
+call s:HL('FoldColumn', s:gray, s:bg1)
+
+" }}}
+" Cursor: {{{
+
+" Character under cursor
+call s:HL('Cursor', s:none, s:none, s:inverse)
+" Visual mode cursor, selection
+hi! link vCursor Cursor
+" Input moder cursor
+hi! link iCursor Cursor
+" Language mapping cursor
+hi! link lCursor Cursor
+
+" }}}
+" Syntax Highlighting: {{{
+
+if g:gruvbox_improved_strings == 0
+ hi! link Special GruvboxOrange
+else
+ call s:HL('Special', s:bg1, s:orange, s:italic)
+endif
+
+call s:HL('Comment', s:gray, s:none, s:italicize_comments)
+call s:HL('Todo', s:vim_fg, s:vim_bg, s:bold . s:italic)
+call s:HL('Error', s:red, s:vim_bg, s:bold . s:inverse)
+
+" Generic statement
+hi! link Statement GruvboxRed
+" if, then, else, endif, swicth, etc.
+hi! link Conditional GruvboxRed
+" for, do, while, etc.
+hi! link Repeat GruvboxRed
+" case, default, etc.
+hi! link Label GruvboxRed
+" try, catch, throw
+hi! link Exception GruvboxRed
+" sizeof, "+", "*", etc.
+hi! link Operator Normal
+" Any other keyword
+hi! link Keyword GruvboxRed
+
+" Variable name
+hi! link Identifier GruvboxBlue
+" Function name
+hi! link Function GruvboxGreenBold
+
+" Generic preprocessor
+hi! link PreProc GruvboxAqua
+" Preprocessor #include
+hi! link Include GruvboxAqua
+" Preprocessor #define
+hi! link Define GruvboxAqua
+" Same as Define
+hi! link Macro GruvboxAqua
+" Preprocessor #if, #else, #endif, etc.
+hi! link PreCondit GruvboxAqua
+
+" Generic constant
+hi! link Constant GruvboxPurple
+" Character constant: 'c', '/n'
+hi! link Character GruvboxPurple
+" String constant: "this is a string"
+if g:gruvbox_improved_strings == 0
+ call s:HL('String', s:green, s:none, s:italicize_strings)
+else
+ call s:HL('String', s:bg1, s:fg1, s:italicize_strings)
+endif
+" Boolean constant: TRUE, false
+hi! link Boolean GruvboxPurple
+" Number constant: 234, 0xff
+hi! link Number GruvboxPurple
+" Floating point constant: 2.3e10
+hi! link Float GruvboxPurple
+
+" Generic type
+hi! link Type GruvboxYellow
+" static, register, volatile, etc
+hi! link StorageClass GruvboxOrange
+" struct, union, enum, etc.
+hi! link Structure GruvboxAqua
+" typedef
+hi! link Typedef GruvboxYellow
+
+" }}}
+" Completion Menu: {{{
+
+if version >= 700
+ " Popup menu: normal item
+ call s:HL('Pmenu', s:fg1, s:bg2)
+ " Popup menu: selected item
+ call s:HL('PmenuSel', s:bg2, s:blue, s:bold)
+ " Popup menu: scrollbar
+ call s:HL('PmenuSbar', s:none, s:bg2)
+ " Popup menu: scrollbar thumb
+ call s:HL('PmenuThumb', s:none, s:bg4)
+endif
+
+" }}}
+" Diffs: {{{
+
+call s:HL('DiffDelete', s:red, s:bg0, s:inverse)
+call s:HL('DiffAdd', s:green, s:bg0, s:inverse)
+"call s:HL('DiffChange', s:bg0, s:blue)
+"call s:HL('DiffText', s:bg0, s:yellow)
+
+" Alternative setting
+call s:HL('DiffChange', s:aqua, s:bg0, s:inverse)
+call s:HL('DiffText', s:yellow, s:bg0, s:inverse)
+
+" }}}
+" Spelling: {{{
+
+if has("spell")
+ " Not capitalised word, or compile warnings
+ if g:gruvbox_improved_warnings == 0
+ call s:HL('SpellCap', s:none, s:none, s:undercurl, s:red)
+ else
+ call s:HL('SpellCap', s:green, s:none, s:bold . s:italic)
+ endif
+ " Not recognized word
+ call s:HL('SpellBad', s:none, s:none, s:undercurl, s:blue)
+ " Wrong spelling for selected region
+ call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:aqua)
+ " Rare word
+ call s:HL('SpellRare', s:none, s:none, s:undercurl, s:purple)
+endif
+
+" }}}
+
+" Plugin specific -------------------------------------------------------------
+" EasyMotion: {{{
+
+hi! link EasyMotionTarget Search
+hi! link EasyMotionShade Comment
+
+" }}}
+" Sneak: {{{
+
+hi! link SneakPluginTarget Search
+hi! link SneakStreakTarget Search
+call s:HL('SneakStreakMask', s:yellow, s:yellow)
+hi! link SneakStreakStatusLine Search
+
+" }}}
+" Indent Guides: {{{
+
+if !exists('g:indent_guides_auto_colors')
+ let g:indent_guides_auto_colors = 0
+endif
+
+if g:indent_guides_auto_colors == 0
+ if g:gruvbox_invert_indent_guides == 0
+ call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2)
+ call s:HL('IndentGuidesEven', s:vim_bg, s:bg1)
+ else
+ call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2, s:inverse)
+ call s:HL('IndentGuidesEven', s:vim_bg, s:bg3, s:inverse)
+ endif
+endif
+
+" }}}
+" IndentLine: {{{
+
+if !exists('g:indentLine_color_term')
+ let g:indentLine_color_term = s:bg2[1]
+endif
+if !exists('g:indentLine_color_gui')
+ let g:indentLine_color_gui = s:bg2[0]
+endif
+
+" }}}
+" Rainbow Parentheses: {{{
+
+if !exists('g:rbpt_colorpairs')
+ let g:rbpt_colorpairs =
+ \ [
+ \ ['blue', '#458588'], ['magenta', '#b16286'],
+ \ ['red', '#cc241d'], ['166', '#d65d0e']
+ \ ]
+endif
+
+let g:rainbow_guifgs = [ '#d65d0e', '#cc241d', '#b16286', '#458588' ]
+let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ]
+
+if !exists('g:rainbow_conf')
+ let g:rainbow_conf = {}
+endif
+if !has_key(g:rainbow_conf, 'guifgs')
+ let g:rainbow_conf['guifgs'] = g:rainbow_guifgs
+endif
+if !has_key(g:rainbow_conf, 'ctermfgs')
+ let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs
+endif
+
+let g:niji_dark_colours = g:rbpt_colorpairs
+let g:niji_light_colours = g:rbpt_colorpairs
+
+"}}}
+" GitGutter: {{{
+
+hi! link GitGutterAdd GruvboxGreenSign
+hi! link GitGutterChange GruvboxAquaSign
+hi! link GitGutterDelete GruvboxRedSign
+hi! link GitGutterChangeDelete GruvboxAquaSign
+
+" }}}
+" GitCommit: "{{{
+
+hi! link gitcommitSelectedFile GruvboxGreen
+hi! link gitcommitDiscardedFile GruvboxRed
+
+" }}}
+" Signify: {{{
+
+hi! link SignifySignAdd GruvboxGreenSign
+hi! link SignifySignChange GruvboxAquaSign
+hi! link SignifySignDelete GruvboxRedSign
+
+" }}}
+" Syntastic: {{{
+
+call s:HL('SyntasticError', s:none, s:none, s:undercurl, s:red)
+call s:HL('SyntasticWarning', s:none, s:none, s:undercurl, s:yellow)
+
+hi! link SyntasticErrorSign GruvboxRedSign
+hi! link SyntasticWarningSign GruvboxYellowSign
+
+" }}}
+" Signature: {{{
+hi! link SignatureMarkText GruvboxBlueSign
+hi! link SignatureMarkerText GruvboxPurpleSign
+
+" }}}
+" ShowMarks: {{{
+
+hi! link ShowMarksHLl GruvboxBlueSign
+hi! link ShowMarksHLu GruvboxBlueSign
+hi! link ShowMarksHLo GruvboxBlueSign
+hi! link ShowMarksHLm GruvboxBlueSign
+
+" }}}
+" CtrlP: {{{
+
+hi! link CtrlPMatch GruvboxYellow
+hi! link CtrlPNoEntries GruvboxRed
+hi! link CtrlPPrtBase GruvboxBg2
+hi! link CtrlPPrtCursor GruvboxBlue
+hi! link CtrlPLinePre GruvboxBg2
+
+call s:HL('CtrlPMode1', s:blue, s:bg2, s:bold)
+call s:HL('CtrlPMode2', s:bg0, s:blue, s:bold)
+call s:HL('CtrlPStats', s:fg4, s:bg2, s:bold)
+
+" }}}
+" Startify: {{{
+
+hi! link StartifyBracket GruvboxFg3
+hi! link StartifyFile GruvboxFg0
+hi! link StartifyNumber GruvboxBlue
+hi! link StartifyPath GruvboxGray
+hi! link StartifySlash GruvboxGray
+hi! link StartifySection GruvboxYellow
+hi! link StartifySpecial GruvboxBg2
+hi! link StartifyHeader GruvboxOrange
+hi! link StartifyFooter GruvboxBg2
+
+" }}}
+" Vimshell: {{{
+
+let g:vimshell_escape_colors = [
+ \ s:bg4[0], s:red[0], s:green[0], s:yellow[0],
+ \ s:blue[0], s:purple[0], s:aqua[0], s:fg4[0],
+ \ s:bg0[0], s:red[0], s:green[0], s:orange[0],
+ \ s:blue[0], s:purple[0], s:aqua[0], s:fg0[0]
+ \ ]
+
+" }}}
+" BufTabLine: {{{
+
+call s:HL('BufTabLineCurrent', s:bg0, s:fg4)
+call s:HL('BufTabLineActive', s:fg4, s:bg2)
+call s:HL('BufTabLineHidden', s:bg4, s:bg1)
+call s:HL('BufTabLineFill', s:bg0, s:bg0)
+
+" }}}
+
+" Filetype specific -----------------------------------------------------------
+" Diff: {{{
+
+hi! link diffAdded GruvboxGreen
+hi! link diffRemoved GruvboxRed
+hi! link diffChanged GruvboxAqua
+
+hi! link diffFile GruvboxOrange
+hi! link diffNewFile GruvboxYellow
+
+hi! link diffLine GruvboxBlue
+
+" }}}
+" Html: {{{
+
+hi! link htmlTag GruvboxBlue
+hi! link htmlEndTag GruvboxBlue
+
+hi! link htmlTagName GruvboxAquaBold
+hi! link htmlArg GruvboxAqua
+
+hi! link htmlScriptTag GruvboxPurple
+hi! link htmlTagN GruvboxFg1
+hi! link htmlSpecialTagName GruvboxAquaBold
+
+call s:HL('htmlLink', s:fg4, s:none, s:underline)
+
+hi! link htmlSpecialChar GruvboxOrange
+
+call s:HL('htmlBold', s:vim_fg, s:vim_bg, s:bold)
+call s:HL('htmlBoldUnderline', s:vim_fg, s:vim_bg, s:bold . s:underline)
+call s:HL('htmlBoldItalic', s:vim_fg, s:vim_bg, s:bold . s:italic)
+call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:vim_bg, s:bold . s:underline . s:italic)
+
+call s:HL('htmlUnderline', s:vim_fg, s:vim_bg, s:underline)
+call s:HL('htmlUnderlineItalic', s:vim_fg, s:vim_bg, s:underline . s:italic)
+call s:HL('htmlItalic', s:vim_fg, s:vim_bg, s:italic)
+
+" }}}
+" Xml: {{{
+
+hi! link xmlTag GruvboxBlue
+hi! link xmlEndTag GruvboxBlue
+hi! link xmlTagName GruvboxBlue
+hi! link xmlEqual GruvboxBlue
+hi! link docbkKeyword GruvboxAquaBold
+
+hi! link xmlDocTypeDecl GruvboxGray
+hi! link xmlDocTypeKeyword GruvboxPurple
+hi! link xmlCdataStart GruvboxGray
+hi! link xmlCdataCdata GruvboxPurple
+hi! link dtdFunction GruvboxGray
+hi! link dtdTagName GruvboxPurple
+
+hi! link xmlAttrib GruvboxAqua
+hi! link xmlProcessingDelim GruvboxGray
+hi! link dtdParamEntityPunct GruvboxGray
+hi! link dtdParamEntityDPunct GruvboxGray
+hi! link xmlAttribPunct GruvboxGray
+
+hi! link xmlEntity GruvboxOrange
+hi! link xmlEntityPunct GruvboxOrange
+" }}}
+" Vim: {{{
+
+call s:HL('vimCommentTitle', s:fg4_256, s:none, s:bold . s:italicize_comments)
+
+hi! link vimNotation GruvboxOrange
+hi! link vimBracket GruvboxOrange
+hi! link vimMapModKey GruvboxOrange
+hi! link vimFuncSID GruvboxFg3
+hi! link vimSetSep GruvboxFg3
+hi! link vimSep GruvboxFg3
+hi! link vimContinue GruvboxFg3
+
+" }}}
+" Clojure: {{{
+
+hi! link clojureKeyword GruvboxBlue
+hi! link clojureCond GruvboxOrange
+hi! link clojureSpecial GruvboxOrange
+hi! link clojureDefine GruvboxOrange
+
+hi! link clojureFunc GruvboxYellow
+hi! link clojureRepeat GruvboxYellow
+hi! link clojureCharacter GruvboxAqua
+hi! link clojureStringEscape GruvboxAqua
+hi! link clojureException GruvboxRed
+
+hi! link clojureRegexp GruvboxAqua
+hi! link clojureRegexpEscape GruvboxAqua
+call s:HL('clojureRegexpCharClass', s:fg3, s:none, s:bold)
+hi! link clojureRegexpMod clojureRegexpCharClass
+hi! link clojureRegexpQuantifier clojureRegexpCharClass
+
+hi! link clojureParen GruvboxFg3
+hi! link clojureAnonArg GruvboxYellow
+hi! link clojureVariable GruvboxBlue
+hi! link clojureMacro GruvboxOrange
+
+hi! link clojureMeta GruvboxYellow
+hi! link clojureDeref GruvboxYellow
+hi! link clojureQuote GruvboxYellow
+hi! link clojureUnquote GruvboxYellow
+
+" }}}
+" C: {{{
+
+hi! link cOperator GruvboxPurple
+hi! link cStructure GruvboxOrange
+
+" }}}
+" Python: {{{
+
+hi! link pythonBuiltin GruvboxOrange
+hi! link pythonBuiltinObj GruvboxOrange
+hi! link pythonBuiltinFunc GruvboxOrange
+hi! link pythonFunction GruvboxAqua
+hi! link pythonDecorator GruvboxRed
+hi! link pythonInclude GruvboxBlue
+hi! link pythonImport GruvboxBlue
+hi! link pythonRun GruvboxBlue
+hi! link pythonCoding GruvboxBlue
+hi! link pythonOperator GruvboxRed
+hi! link pythonExceptions GruvboxPurple
+hi! link pythonBoolean GruvboxPurple
+hi! link pythonDot GruvboxFg3
+
+" }}}
+" CSS: {{{
+
+hi! link cssBraces GruvboxBlue
+hi! link cssFunctionName GruvboxYellow
+hi! link cssIdentifier GruvboxOrange
+hi! link cssClassName GruvboxGreen
+hi! link cssColor GruvboxBlue
+hi! link cssSelectorOp GruvboxBlue
+hi! link cssSelectorOp2 GruvboxBlue
+hi! link cssImportant GruvboxGreen
+hi! link cssVendor GruvboxFg1
+
+hi! link cssTextProp GruvboxAqua
+hi! link cssAnimationProp GruvboxAqua
+hi! link cssUIProp GruvboxYellow
+hi! link cssTransformProp GruvboxAqua
+hi! link cssTransitionProp GruvboxAqua
+hi! link cssPrintProp GruvboxAqua
+hi! link cssPositioningProp GruvboxYellow
+hi! link cssBoxProp GruvboxAqua
+hi! link cssFontDescriptorProp GruvboxAqua
+hi! link cssFlexibleBoxProp GruvboxAqua
+hi! link cssBorderOutlineProp GruvboxAqua
+hi! link cssBackgroundProp GruvboxAqua
+hi! link cssMarginProp GruvboxAqua
+hi! link cssListProp GruvboxAqua
+hi! link cssTableProp GruvboxAqua
+hi! link cssFontProp GruvboxAqua
+hi! link cssPaddingProp GruvboxAqua
+hi! link cssDimensionProp GruvboxAqua
+hi! link cssRenderProp GruvboxAqua
+hi! link cssColorProp GruvboxAqua
+hi! link cssGeneratedContentProp GruvboxAqua
+
+" }}}
+" JavaScript: {{{
+
+hi! link javaScriptBraces GruvboxFg1
+hi! link javaScriptFunction GruvboxAqua
+hi! link javaScriptIdentifier GruvboxRed
+hi! link javaScriptMember GruvboxBlue
+hi! link javaScriptNumber GruvboxPurple
+hi! link javaScriptNull GruvboxPurple
+hi! link javaScriptParens GruvboxFg3
+
+" }}}
+" YAJS: {{{
+
+hi! link javascriptImport GruvboxAqua
+hi! link javascriptExport GruvboxAqua
+hi! link javascriptClassKeyword GruvboxAqua
+hi! link javascriptClassExtends GruvboxAqua
+hi! link javascriptDefault GruvboxAqua
+
+hi! link javascriptClassName GruvboxYellow
+hi! link javascriptClassSuperName GruvboxYellow
+hi! link javascriptGlobal GruvboxYellow
+
+hi! link javascriptEndColons GruvboxFg1
+hi! link javascriptFuncArg GruvboxFg1
+hi! link javascriptGlobalMethod GruvboxFg1
+hi! link javascriptNodeGlobal GruvboxFg1
+
+" hi! link javascriptVariable GruvboxOrange
+hi! link javascriptVariable GruvboxRed
+" hi! link javascriptIdentifier GruvboxOrange
+" hi! link javascriptClassSuper GruvboxOrange
+hi! link javascriptIdentifier GruvboxOrange
+hi! link javascriptClassSuper GruvboxOrange
+
+" hi! link javascriptFuncKeyword GruvboxOrange
+" hi! link javascriptAsyncFunc GruvboxOrange
+hi! link javascriptFuncKeyword GruvboxAqua
+hi! link javascriptAsyncFunc GruvboxAqua
+hi! link javascriptClassStatic GruvboxOrange
+
+hi! link javascriptOperator GruvboxRed
+hi! link javascriptForOperator GruvboxRed
+hi! link javascriptYield GruvboxRed
+hi! link javascriptExceptions GruvboxRed
+hi! link javascriptMessage GruvboxRed
+
+hi! link javascriptTemplateSB GruvboxAqua
+hi! link javascriptTemplateSubstitution GruvboxFg1
+
+" hi! link javascriptLabel GruvboxBlue
+" hi! link javascriptObjectLabel GruvboxBlue
+" hi! link javascriptPropertyName GruvboxBlue
+hi! link javascriptLabel GruvboxFg1
+hi! link javascriptObjectLabel GruvboxFg1
+hi! link javascriptPropertyName GruvboxFg1
+
+hi! link javascriptLogicSymbols GruvboxFg1
+hi! link javascriptArrowFunc GruvboxFg1
+
+hi! link javascriptDocParamName GruvboxFg4
+hi! link javascriptDocTags GruvboxFg4
+hi! link javascriptDocNotation GruvboxFg4
+hi! link javascriptDocParamType GruvboxFg4
+hi! link javascriptDocNamedParamType GruvboxFg4
+
+" }}}
+" CoffeeScript: {{{
+
+hi! link coffeeExtendedOp GruvboxFg3
+hi! link coffeeSpecialOp GruvboxFg3
+hi! link coffeeCurly GruvboxOrange
+hi! link coffeeParen GruvboxFg3
+hi! link coffeeBracket GruvboxOrange
+
+" }}}
+" Ruby: {{{
+
+hi! link rubyStringDelimiter GruvboxGreen
+hi! link rubyInterpolationDelimiter GruvboxAqua
+
+" }}}
+" ObjectiveC: {{{
+
+hi! link objcTypeModifier GruvboxRed
+hi! link objcDirective GruvboxBlue
+
+" }}}
+" Go: {{{
+
+hi! link goDirective GruvboxAqua
+hi! link goConstants GruvboxPurple
+hi! link goDeclaration GruvboxRed
+hi! link goDeclType GruvboxBlue
+hi! link goBuiltins GruvboxOrange
+
+" }}}
+" Lua: {{{
+
+hi! link luaIn GruvboxRed
+hi! link luaFunction GruvboxAqua
+hi! link luaTable GruvboxOrange
+
+" }}}
+" MoonScript: {{{
+
+hi! link moonSpecialOp GruvboxFg3
+hi! link moonExtendedOp GruvboxFg3
+hi! link moonFunction GruvboxFg3
+hi! link moonObject GruvboxYellow
+
+" }}}
+" Java: {{{
+
+hi! link javaAnnotation GruvboxBlue
+hi! link javaDocTags GruvboxAqua
+hi! link javaCommentTitle vimCommentTitle
+hi! link javaParen GruvboxFg3
+hi! link javaParen1 GruvboxFg3
+hi! link javaParen2 GruvboxFg3
+hi! link javaParen3 GruvboxFg3
+hi! link javaParen4 GruvboxFg3
+hi! link javaParen5 GruvboxFg3
+hi! link javaOperator GruvboxOrange
+
+hi! link javaVarArg GruvboxGreen
+
+" }}}
+" Elixir: {{{
+
+hi! link elixirDocString Comment
+
+hi! link elixirStringDelimiter GruvboxGreen
+hi! link elixirInterpolationDelimiter GruvboxAqua
+
+" }}}
+" Scala: {{{
+
+" NB: scala vim syntax file is kinda horrible
+hi! link scalaNameDefinition GruvboxFg1
+hi! link scalaCaseFollowing GruvboxFg1
+hi! link scalaCapitalWord GruvboxFg1
+hi! link scalaTypeExtension GruvboxFg1
+
+hi! link scalaKeyword GruvboxRed
+hi! link scalaKeywordModifier GruvboxRed
+
+hi! link scalaSpecial GruvboxAqua
+hi! link scalaOperator GruvboxFg1
+
+hi! link scalaTypeDeclaration GruvboxYellow
+hi! link scalaTypeTypePostDeclaration GruvboxYellow
+
+hi! link scalaInstanceDeclaration GruvboxFg1
+hi! link scalaInterpolation GruvboxAqua
+
+" }}}
+" Markdown: {{{
+
+call s:HL('markdownItalic', s:fg3, s:none, s:italic)
+
+hi! link markdownH1 GruvboxGreenBold
+hi! link markdownH2 GruvboxGreenBold
+hi! link markdownH3 GruvboxYellowBold
+hi! link markdownH4 GruvboxYellowBold
+hi! link markdownH5 GruvboxYellow
+hi! link markdownH6 GruvboxYellow
+
+hi! link markdownCode GruvboxAqua
+hi! link markdownCodeBlock GruvboxAqua
+hi! link markdownCodeDelimiter GruvboxAqua
+
+hi! link markdownBlockquote GruvboxGray
+hi! link markdownListMarker GruvboxGray
+hi! link markdownOrderedListMarker GruvboxGray
+hi! link markdownRule GruvboxGray
+hi! link markdownHeadingRule GruvboxGray
+
+hi! link markdownUrlDelimiter GruvboxFg3
+hi! link markdownLinkDelimiter GruvboxFg3
+hi! link markdownLinkTextDelimiter GruvboxFg3
+
+hi! link markdownHeadingDelimiter GruvboxOrange
+hi! link markdownUrl GruvboxPurple
+hi! link markdownUrlTitleDelimiter GruvboxGreen
+
+call s:HL('markdownLinkText', s:gray, s:none, s:underline)
+hi! link markdownIdDeclaration markdownLinkText
+
+" }}}
+" Haskell: {{{
+
+" hi! link haskellType GruvboxYellow
+" hi! link haskellOperators GruvboxOrange
+" hi! link haskellConditional GruvboxAqua
+" hi! link haskellLet GruvboxOrange
+"
+hi! link haskellType GruvboxFg1
+hi! link haskellIdentifier GruvboxFg1
+hi! link haskellSeparator GruvboxFg1
+hi! link haskellDelimiter GruvboxFg4
+hi! link haskellOperators GruvboxBlue
+"
+hi! link haskellBacktick GruvboxOrange
+hi! link haskellStatement GruvboxOrange
+hi! link haskellConditional GruvboxOrange
+
+hi! link haskellLet GruvboxAqua
+hi! link haskellDefault GruvboxAqua
+hi! link haskellWhere GruvboxAqua
+hi! link haskellBottom GruvboxAqua
+hi! link haskellBlockKeywords GruvboxAqua
+hi! link haskellImportKeywords GruvboxAqua
+hi! link haskellDeclKeyword GruvboxAqua
+hi! link haskellDeriving GruvboxAqua
+hi! link haskellAssocType GruvboxAqua
+
+hi! link haskellNumber GruvboxPurple
+hi! link haskellPragma GruvboxPurple
+
+hi! link haskellString GruvboxGreen
+hi! link haskellChar GruvboxGreen
+
+" }}}
+" Json: {{{
+
+hi! link jsonKeyword GruvboxGreen
+hi! link jsonQuote GruvboxGreen
+hi! link jsonBraces GruvboxFg1
+hi! link jsonString GruvboxFg1
+
+" }}}
+
+
+" Functions -------------------------------------------------------------------
+" Search Highlighting Cursor {{{
+
+function! GruvboxHlsShowCursor()
+ call s:HL('Cursor', s:bg0, s:hls_cursor)
+endfunction
+
+function! GruvboxHlsHideCursor()
+ call s:HL('Cursor', s:none, s:none, s:inverse)
+endfunction
+
+" }}}
+
+" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker:
diff --git a/.vim/colors/pride.vim b/.vim/colors/pride.vim
new file mode 100644
index 0000000..cda6e86
--- /dev/null
+++ b/.vim/colors/pride.vim
@@ -0,0 +1,180 @@
+" pride.vim
+"
+" author: github.com/lyxell
+" url: github.com/lyxell/pride.vim
+
+" general
+""""""""""
+
+" reset to vim default stylesheet defined in src/syntax.c
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+let g:colors_name = "pride"
+if !exists('g:pride_background')
+ let g:pride_background=233
+endif
+
+" remove styles defined by src/syntax.c
+hi clear SpecialKey
+hi clear NonText
+hi clear Directory
+hi clear ErrorMsg
+hi clear IncSearch
+hi clear Search
+hi clear MoreMsg
+hi clear ModeMsg
+hi clear LineNr
+hi clear CursorLineNr
+hi clear Question
+hi clear StatusLine
+hi clear StatusLineNC
+hi clear VertSplit
+hi clear Title
+hi clear Visual
+hi clear VisualNOS
+hi clear WarningMsg
+hi clear WildMenu
+hi clear Folded
+hi clear FoldColumn
+hi clear DiffAdd
+hi clear DiffChange
+hi clear DiffDelete
+hi clear DiffText
+hi clear SignColumn
+hi clear Conceal
+hi clear SpellBad
+hi clear SpellCap
+hi clear SpellRare
+hi clear SpellLocal
+hi clear Pmenu
+hi clear PmenuSel
+hi clear PmenuSbar
+hi clear PmenuThumb
+hi clear TabLine
+hi clear TabLineSel
+hi clear TabLineFill
+hi clear CursorColumn
+hi clear CursorLine
+hi clear ColorColumn
+hi clear MatchParen
+hi clear Comment
+hi clear Constant
+hi clear Special
+hi clear Identifier
+hi clear Statement
+hi clear PreProc
+hi clear Type
+hi clear Underlined
+hi clear Ignore
+hi clear Error
+hi clear Todo
+
+" definitions
+""""""""""""""
+execute printf("hi Normal ctermbg=%s", g:pride_background)
+execute printf("hi Subtle ctermfg=%s", g:pride_background + 2)
+execute printf("hi Highlight ctermbg=%s", g:pride_background + 1)
+execute printf("hi HighlightSubtle ctermbg=%s ctermfg=%s", g:pride_background + 1, g:pride_background + 2)
+execute printf("hi Invisible ctermfg=%s", g:pride_background)
+if exists('g:pride_panels')
+ execute printf("hi Panel ctermbg=%s ctermfg=%s", g:pride_background + 1, g:pride_background + 5)
+ execute printf("hi PanelHighlight ctermbg=%s ctermfg=%s", g:pride_background + 2, g:pride_background + 6)
+else
+ execute printf("hi Panel ctermbg=%s ctermfg=%s", g:pride_background, g:pride_background + 5)
+ execute printf("hi PanelHighlight ctermbg=%s ctermfg=%s", g:pride_background, g:pride_background + 6)
+endif
+
+hi White ctermfg=255
+hi Grey ctermfg=240
+hi Red ctermfg=204
+hi RedInvert ctermbg=204 ctermfg=234
+hi Orange ctermfg=209
+hi OrangeInvert ctermfg=234 ctermbg=209
+hi Yellow ctermfg=221
+hi YellowInvert ctermfg=234 ctermbg=221
+hi Green ctermfg=114
+hi GreenInvert ctermfg=234 ctermbg=114
+hi Blue ctermfg=74
+hi BlueInvert ctermfg=234 ctermbg=74
+hi Purple ctermfg=176
+hi PurpleInvert ctermfg=234 ctermfg=176
+
+" interface
+""""""""""""
+
+hi li NonText Invisible
+
+hi li CursorLine Highlight
+
+hi li Visual Highlight
+
+
+hi li LineNr Subtle
+hi li CursorLineNr HighlightSubtle
+
+hi li StatusLine Panel
+hi li StatusLineNC Panel
+hi li Tabline Panel
+hi li TablineFill Panel
+hi li TabLineSel PanelHighlight
+hi li Pmenu Panel
+
+hi li PmenuSel RedInvert
+
+hi li Search RedInvert
+hi li IncSearch RedInvert
+
+hi li MatchParen RedInvert
+
+hi li WildMenu RedInvert
+
+hi li DiffAdd GreenInvert
+hi li DiffChange OrangeInvert
+hi li DiffDelete RedInvert
+hi li DiffText BlueInvert
+
+" general syntax
+"""""""""""""""""
+
+hi li Comment Grey
+hi li Noise Grey
+
+hi li Statement Red
+hi li Error Red
+hi li Ignore Red
+
+hi li String Orange
+
+hi li Type Yellow
+hi li Special Yellow
+
+hi li Character Green
+hi li Constant Green
+hi li Directory Green
+hi li PreProc Green
+hi li Identifier Green
+
+hi li Conditional Blue
+hi li Repeat Blue
+hi li Folded Blue
+
+hi li Boolean Purple
+hi li Integer Purple
+hi li Number Purple
+hi li Todo Purple
+
+" dialect specific syntax
+""""""""""""""""""""""""""
+
+hi li rubyRegexp Blue
+hi li rubyRegexpSpecial Purple
+hi li rubyRegexpDelimiter Red
+hi li rubyStringDelimiter Orange
+
+hi li netrwComma Blue
+hi li netrwClassify Green
+
+hi li gitcommitFile Orange
+hi li gitcommitBranch Blue
diff --git a/.vim/colors/scheakur.vim b/.vim/colors/scheakur.vim
new file mode 100644
index 0000000..a6a741e
--- /dev/null
+++ b/.vim/colors/scheakur.vim
@@ -0,0 +1,130 @@
+" This file is built by ../source.vim.
+" Do not modify this file directly.
+highlight clear
+if exists('syntax_on')
+ syntax reset
+endif
+
+let g:colors_name = 'scheakur'
+
+if &background == 'light'
+ hi Normal guifg=#2e2e2e guibg=#f0f0e5 gui=none ctermfg=234 ctermbg=255 cterm=none
+ hi ColorColumn guibg=#dfd6d1 ctermbg=145
+ hi Comment guifg=#506a78 ctermfg=59
+ hi Conceal guifg=#0c6cc0 guibg=#f0f0e5 gui=none ctermfg=25 ctermbg=188
+ hi Constant guifg=#1a7931 ctermfg=22
+ hi Cursor guibg=#f39812 ctermbg=172
+ hi CursorColumn guibg=#cce0ef ctermbg=146
+ hi CursorIM guibg=#4a9f68 ctermbg=65
+ hi CursorLine guibg=#cce0ef gui=none ctermbg=153 cterm=none
+ hi CursorLineNr guifg=#567686 guibg=#cce0ef gui=none ctermfg=60 ctermbg=146
+ hi DiffAdd guibg=#d0ead0 ctermbg=151
+ hi DiffChange guibg=#fdfec9 ctermbg=229
+ hi DiffDelete guifg=#ffe3e5 guibg=#ffe3e5 ctermfg=174 ctermbg=174
+ hi DiffText guibg=#fed910 ctermbg=178
+ hi Directory guifg=#1177dd ctermfg=25
+ hi Error guifg=#d1160b guibg=#ffe3e5 ctermfg=124 ctermbg=223
+ hi ErrorMsg guifg=#d1160b guibg=#ffe3e5 ctermfg=124 ctermbg=223
+ hi FoldColumn guifg=#04530d guibg=#d0ead0 ctermfg=22 ctermbg=151
+ hi Folded guifg=#04530d guibg=#d0ead0 ctermfg=22 ctermbg=151
+ hi Function guifg=#cb1265 ctermfg=125
+ hi Identifier guifg=#1a5991 ctermfg=24
+ hi Ignore guifg=#666666 ctermfg=240
+ hi IncSearch guifg=#2e2e2e guibg=#f4b3c2 gui=none ctermfg=234 ctermbg=218
+ hi LineNr guifg=#567686 guibg=#e2e2d0 ctermfg=236 ctermbg=145
+ hi MatchParen guifg=#0e8ed3 guibg=#dbf2ff ctermfg=31 ctermbg=152
+ hi ModeMsg guifg=#337ca3 ctermfg=24
+ hi MoreMsg guifg=#1e7b3d ctermfg=22
+ hi NonText guifg=#7878ba gui=none ctermfg=61
+ hi Operator guifg=#6b118a ctermfg=54
+ hi Pmenu guifg=#2e2e2e guibg=#f6e4e7 ctermfg=235 ctermbg=231
+ hi PmenuSbar guifg=#2e2e2e guibg=#f6e4e7 ctermfg=235 ctermbg=231
+ hi PmenuSel guifg=#2e2e2e guibg=#f4b3c2 gui=none ctermfg=234 ctermbg=218
+ hi PmenuThumb guifg=#2e2e2e guibg=#f4b3c2 gui=none ctermfg=234 ctermbg=218
+ hi PreProc guifg=#6b118a ctermfg=54
+ hi Question guifg=#008080 ctermfg=30
+ hi Search guifg=#2e2e2e guibg=#e9e7ac ctermfg=235 ctermbg=186
+ hi SignColumn guifg=#567686 guibg=#e2e2d0 ctermfg=236 ctermbg=145
+ hi Special guifg=#0b3fad ctermfg=18
+ hi SpecialKey guifg=#aabbcc ctermfg=109
+ hi SpellBad guifg=#d1160b guibg=#ffe3e5 gui=undercurl ctermfg=124 ctermbg=223 guisp=#d1160b cterm=underline
+ hi SpellCap guifg=#0b3fad guibg=#dbf2ff gui=undercurl ctermfg=18 ctermbg=152 guisp=#0b3fad cterm=underline
+ hi SpellLocal guifg=#4d4214 guibg=#fdfec9 gui=undercurl ctermfg=52 ctermbg=229 guisp=#4d4214 cterm=underline
+ hi SpellRare guifg=#04530d guibg=#d0ead0 gui=undercurl ctermfg=22 ctermbg=151 guisp=#04530d cterm=underline
+ hi Statement guifg=#0c6cc0 gui=none ctermfg=25
+ hi StatusLine guifg=#dcdcdc guibg=#4a4642 gui=none ctermfg=251 ctermbg=237
+ hi StatusLineNC guifg=#dcdcdc guibg=#7a7672 gui=italic ctermfg=251 ctermbg=242 cterm=none
+ hi String guifg=#0b3fad ctermfg=18
+ hi TabLine guifg=#dcdcdc guibg=#4a4642 gui=none ctermfg=251 ctermbg=237
+ hi TabLineFill guifg=#dcdcdc guibg=#4a4642 gui=none ctermfg=251 ctermbg=237
+ hi TabLineSel guifg=#4a4642 gui=none ctermfg=237
+ hi Tag guifg=#a25a09 ctermfg=94
+ hi Title guifg=#0b3fad gui=none ctermfg=18
+ hi Todo guifg=#4d4214 guibg=#fdfec9 ctermfg=52 ctermbg=229
+ hi Type guifg=#bd3b09 gui=none ctermfg=124
+ hi Underlined guifg=#0c6cc0 ctermfg=25
+ hi VertSplit guifg=#4a4642 guibg=#4a4642 gui=none ctermfg=237 ctermbg=237
+ hi Visual guibg=#cce0ef ctermbg=153
+ hi WarningMsg guifg=#ea6042 ctermfg=166
+ hi WildMenu guifg=#2e2e2e guibg=#f0f0e5 gui=none ctermfg=234 ctermbg=255 cterm=none
+else
+ hi Normal guifg=#dadad5 guibg=#121713 gui=none ctermfg=255 ctermbg=234 cterm=none
+ hi ColorColumn guibg=#262f21 ctermbg=235
+ hi Comment guifg=#707073 ctermfg=241
+ hi Conceal guifg=#91b5d4 guibg=#121713 gui=none ctermfg=109 ctermbg=233
+ hi Constant guifg=#70a395 ctermfg=66
+ hi Cursor guibg=#f39812 ctermbg=172
+ hi CursorColumn guibg=#23343d ctermbg=235
+ hi CursorIM guibg=#4a9f68 ctermbg=65
+ hi CursorLine guibg=#23343d gui=none ctermbg=24 cterm=none
+ hi CursorLineNr guifg=#7c8884 guibg=#23343d gui=none ctermfg=66 ctermbg=235
+ hi DiffAdd guibg=#013a06 gui=none ctermfg=71 ctermbg=16
+ hi DiffChange guibg=#4a4707 ctermfg=178 ctermbg=235
+ hi DiffDelete guifg=#491008 guibg=#491008 ctermfg=237 ctermbg=237
+ hi DiffText guifg=#fefd03 guibg=#7b7b00 ctermfg=226 ctermbg=58
+ hi Directory guifg=#6aaaea ctermfg=68
+ hi Error guifg=#ff8485 guibg=#121713 ctermfg=174 ctermbg=234
+ hi ErrorMsg guifg=#ff8485 guibg=#121713 ctermfg=174 ctermbg=234
+ hi FoldColumn guifg=#a0cab0 guibg=#303a3b ctermfg=109 ctermbg=236
+ hi Folded guifg=#a0cab0 guibg=#303a3b ctermfg=109 ctermbg=236
+ hi Function guifg=#d789c8 ctermfg=168
+ hi Identifier guifg=#91a8a5 ctermfg=102
+ hi Ignore guifg=#666666 ctermfg=240
+ hi IncSearch guifg=#dadad5 guibg=#d51487 gui=none ctermfg=251 ctermbg=162
+ hi LineNr guifg=#7c8884 guibg=#132423 ctermfg=66 ctermbg=234
+ hi MatchParen guifg=#dadad5 guibg=#088b8c ctermfg=251 ctermbg=30
+ hi ModeMsg guifg=#6badd1 ctermfg=67
+ hi MoreMsg guifg=#add581 ctermfg=108
+ hi NonText guifg=#7878ba gui=none ctermfg=61
+ hi Operator guifg=#8d89c7 ctermfg=103
+ hi Pmenu guifg=#dadad5 guibg=#292c2f ctermfg=251 ctermbg=237
+ hi PmenuSbar guifg=#dadad5 guibg=#292c2f ctermfg=251 ctermbg=237
+ hi PmenuSel guifg=#dadad5 guibg=#d51487 gui=none ctermfg=251 ctermbg=162
+ hi PmenuThumb guifg=#dadad5 guibg=#d51487 gui=none ctermfg=251 ctermbg=162
+ hi PreProc guifg=#8d89c7 ctermfg=103
+ hi Question guifg=#00a0a0 ctermfg=30
+ hi Search guifg=#121713 guibg=#c9c73c ctermfg=233 ctermbg=142
+ hi SignColumn guifg=#7c8884 guibg=#132423 ctermfg=66 ctermbg=234
+ hi Special guifg=#a7a053 ctermfg=101
+ hi SpecialKey guifg=#3a4857 ctermfg=59
+ hi SpellBad guifg=#ff8485 guibg=#121713 gui=undercurl ctermfg=174 ctermbg=233 guisp=#ff8485 cterm=underline
+ hi SpellCap guifg=#a7a053 guibg=#121713 gui=undercurl ctermfg=101 ctermbg=233 guisp=#a7a053 cterm=underline
+ hi SpellLocal guifg=#fdfec9 guibg=#121713 gui=undercurl ctermfg=187 ctermbg=233 guisp=#fdfec9 cterm=underline
+ hi SpellRare guifg=#a0cab0 guibg=#121713 gui=undercurl ctermfg=109 ctermbg=233 guisp=#a0cab0 cterm=underline
+ hi Statement guifg=#91b5d4 gui=none ctermfg=109
+ hi StatusLine guifg=#b2b5b2 guibg=#292c2f gui=none ctermfg=247 ctermbg=237
+ hi StatusLineNC guifg=#727572 guibg=#020508 gui=italic ctermfg=235 ctermbg=232 cterm=none
+ hi String guifg=#a7a053 ctermfg=101
+ hi TabLine guifg=#b2b5b2 guibg=#292c2f gui=none ctermfg=247 ctermbg=237
+ hi TabLineFill guifg=#b2b5b2 guibg=#292c2f gui=none ctermfg=247 ctermbg=237
+ hi TabLineSel guifg=#d789c8 gui=none ctermfg=139
+ hi Tag guifg=#d38d6b ctermfg=137
+ hi Title guifg=#a7a053 gui=none ctermfg=101
+ hi Todo guifg=#fdfec9 guibg=#4d4214 ctermfg=187 ctermbg=234
+ hi Type guifg=#5f94ca gui=none ctermfg=67
+ hi Underlined guifg=#91b5d4 ctermfg=109
+ hi VertSplit guifg=#292c2f guibg=#292c2f gui=none ctermfg=237 ctermbg=237
+ hi Visual guibg=#23343d ctermbg=24
+ hi WarningMsg guifg=#e0b088 ctermfg=144
+ hi WildMenu guifg=#dadad5 guibg=#121713 gui=none ctermfg=255 ctermbg=234 cterm=none
+endif
diff --git a/.vim/colors/solarized.vim b/.vim/colors/solarized.vim
new file mode 100644
index 0000000..c1b23e2
--- /dev/null
+++ b/.vim/colors/solarized.vim
@@ -0,0 +1,1119 @@
+" Name: Solarized vim colorscheme
+" Author: Ethan Schoonover <es@ethanschoonover.com>
+" URL: http://ethanschoonover.com/solarized
+" (see this url for latest release & screenshots)
+" License: OSI approved MIT license (see end of this file)
+" Created: In the middle of the night
+" Modified: 2011 May 05
+"
+" Usage "{{{
+"
+" ---------------------------------------------------------------------
+" ABOUT:
+" ---------------------------------------------------------------------
+" Solarized is a carefully designed selective contrast colorscheme with dual
+" light and dark modes that runs in both GUI, 256 and 16 color modes.
+"
+" See the homepage above for screenshots and details.
+"
+" ---------------------------------------------------------------------
+" OPTIONS:
+" ---------------------------------------------------------------------
+" See the "solarized.txt" help file included with this colorscheme (in the
+" "doc" subdirectory) for information on options, usage, the Toggle Background
+" function and more. If you have already installed Solarized, this is available
+" from the Solarized menu and command line as ":help solarized"
+"
+" ---------------------------------------------------------------------
+" INSTALLATION:
+" ---------------------------------------------------------------------
+" Two options for installation: manual or pathogen
+"
+" MANUAL INSTALLATION OPTION:
+" ---------------------------------------------------------------------
+"
+" 1. Download the solarized distribution (available on the homepage above)
+" and unarchive the file.
+" 2. Move `solarized.vim` to your `.vim/colors` directory.
+" 3. Move each of the files in each subdirectories to the corresponding .vim
+" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload
+" directory as .vim/autoload/togglebg.vim).
+"
+" RECOMMENDED PATHOGEN INSTALLATION OPTION:
+" ---------------------------------------------------------------------
+"
+" 1. Download and install Tim Pope's Pathogen from:
+" https://github.com/tpope/vim-pathogen
+"
+" 2. Next, move or clone the `vim-colors-solarized` directory so that it is
+" a subdirectory of the `.vim/bundle` directory.
+"
+" a. **clone with git:**
+"
+" $ cd ~/.vim/bundle
+" $ git clone git://github.com/altercation/vim-colors-solarized.git
+"
+" b. **or move manually into the pathogen bundle directory:**
+" In the parent directory of vim-colors-solarized:
+"
+" $ mv vim-colors-solarized ~/.vim/bundle/
+"
+" MODIFY VIMRC:
+"
+" After either Option 1 or Option 2 above, put the following two lines in your
+" .vimrc:
+"
+" syntax enable
+" set background=dark
+" colorscheme solarized
+"
+" or, for the light background mode of Solarized:
+"
+" syntax enable
+" set background=light
+" colorscheme solarized
+"
+" I like to have a different background in GUI and terminal modes, so I can use
+" the following if-then. However, I find vim's background autodetection to be
+" pretty good and, at least with MacVim, I can leave this background value
+" assignment out entirely and get the same results.
+"
+" if has('gui_running')
+" set background=light
+" else
+" set background=dark
+" endif
+"
+" See the Solarized homepage at http://ethanschoonover.com/solarized for
+" screenshots which will help you select either the light or dark background.
+"
+" ---------------------------------------------------------------------
+" COLOR VALUES
+" ---------------------------------------------------------------------
+" Download palettes and files from: http://ethanschoonover.com/solarized
+"
+" L\*a\*b values are canonical (White D65, Reference D50), other values are
+" matched in sRGB space.
+"
+" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB
+" --------- ------- ---- ------- ----------- ---------- ----------- -----------
+" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
+" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
+" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46
+" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51
+" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
+" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
+" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93
+" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
+" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
+" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
+" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
+" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
+" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
+" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
+" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
+" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
+"
+" ---------------------------------------------------------------------
+" COLORSCHEME HACKING
+" ---------------------------------------------------------------------
+"
+" Useful commands for testing colorschemes:
+" :source $VIMRUNTIME/syntax/hitest.vim
+" :help highlight-groups
+" :help cterm-colors
+" :help group-name
+"
+" Useful links for developing colorschemes:
+" http://www.vim.org/scripts/script.php?script_id=2937
+" http://vimcasts.org/episodes/creating-colorschemes-for-vim/
+" http://www.frexx.de/xterm-256-notes/"
+"
+" }}}
+" Environment Specific Overrides "{{{
+" Allow or disallow certain features based on current terminal emulator or
+" environment.
+
+" Terminals that support italics
+let s:terms_italic=[
+ \"rxvt",
+ \"gnome-terminal"
+ \]
+" For reference only, terminals are known to be incomptible.
+" Terminals that are in neither list need to be tested.
+let s:terms_noitalic=[
+ \"iTerm.app",
+ \"Apple_Terminal"
+ \]
+if has("gui_running")
+ let s:terminal_italic=1 " TODO: could refactor to not require this at all
+else
+ let s:terminal_italic=0 " terminals will be guilty until proven compatible
+ for term in s:terms_italic
+ if $TERM_PROGRAM =~ term
+ let s:terminal_italic=1
+ endif
+ endfor
+endif
+
+" }}}
+" Default option values"{{{
+" ---------------------------------------------------------------------
+" s:options_list is used to autogenerate a list of all non-default options
+" using "call SolarizedOptions()" or with the "Generate .vimrc commands"
+" Solarized menu option. See the "Menus" section below for the function itself.
+let s:options_list=[
+ \'" this block of commands has been autogenerated by solarized.vim and',
+ \'" includes the current, non-default Solarized option values.',
+ \'" To use, place these commands in your .vimrc file (replacing any',
+ \'" existing colorscheme commands). See also ":help solarized"',
+ \'',
+ \'" ------------------------------------------------------------------',
+ \'" Solarized Colorscheme Config',
+ \'" ------------------------------------------------------------------',
+ \]
+let s:colorscheme_list=[
+ \'syntax enable',
+ \'set background='.&background,
+ \'colorscheme solarized',
+ \]
+let s:defaults_list=[
+ \'" ------------------------------------------------------------------',
+ \'',
+ \'" The following items are available options, but do not need to be',
+ \'" included in your .vimrc as they are currently set to their defaults.',
+ \''
+ \]
+let s:lazycat_list=[
+ \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"',
+ \'" ------------------------------------------------------------------',
+ \]
+
+function! s:SetOption(name,default)
+ if type(a:default) == type(0)
+ let l:wrap=''
+ let l:ewrap=''
+ else
+ let l:wrap='"'
+ let l:ewrap='\"'
+ endif
+ if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default
+ exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"'
+ exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")'
+ else
+ exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")'
+ endif
+endfunction
+
+if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256)
+ let s:solarized_termtrans_default = 1
+else
+ let s:solarized_termtrans_default = 0
+endif
+call s:SetOption("termtrans",s:solarized_termtrans_default)
+call s:SetOption("degrade",0)
+call s:SetOption("bold",1)
+call s:SetOption("underline",1)
+call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support
+call s:SetOption("termcolors",16)
+call s:SetOption("contrast","normal")
+call s:SetOption("visibility","normal")
+call s:SetOption("diffmode","normal")
+call s:SetOption("hitrail",0)
+call s:SetOption("menu",1)
+
+"}}}
+" Colorscheme initialization "{{{
+" ---------------------------------------------------------------------
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+let colors_name = "solarized"
+
+"}}}
+" GUI & CSApprox hexadecimal palettes"{{{
+" ---------------------------------------------------------------------
+"
+" Set both gui and terminal color values in separate conditional statements
+" Due to possibility that CSApprox is running (though I suppose we could just
+" leave the hex values out entirely in that case and include only cterm colors)
+" We also check to see if user has set solarized (force use of the
+" neutral gray monotone palette component)
+if (has("gui_running") && g:solarized_degrade == 0)
+ let s:vmode = "gui"
+ let s:base03 = "#002b36"
+ let s:base02 = "#073642"
+ let s:base01 = "#586e75"
+ let s:base00 = "#657b83"
+ let s:base0 = "#839496"
+ let s:base1 = "#93a1a1"
+ let s:base2 = "#eee8d5"
+ let s:base3 = "#fdf6e3"
+ let s:yellow = "#b58900"
+ let s:orange = "#cb4b16"
+ let s:red = "#dc322f"
+ let s:magenta = "#d33682"
+ let s:violet = "#6c71c4"
+ let s:blue = "#268bd2"
+ let s:cyan = "#2aa198"
+ "let s:green = "#859900" "original
+ let s:green = "#719e07" "experimental
+elseif (has("gui_running") && g:solarized_degrade == 1)
+ " These colors are identical to the 256 color mode. They may be viewed
+ " while in gui mode via "let g:solarized_degrade=1", though this is not
+ " recommened and is for testing only.
+ let s:vmode = "gui"
+ let s:base03 = "#1c1c1c"
+ let s:base02 = "#262626"
+ let s:base01 = "#4e4e4e"
+ let s:base00 = "#585858"
+ let s:base0 = "#808080"
+ let s:base1 = "#8a8a8a"
+ let s:base2 = "#d7d7af"
+ let s:base3 = "#ffffd7"
+ let s:yellow = "#af8700"
+ let s:orange = "#d75f00"
+ let s:red = "#af0000"
+ let s:magenta = "#af005f"
+ let s:violet = "#5f5faf"
+ let s:blue = "#0087ff"
+ let s:cyan = "#00afaf"
+ let s:green = "#5f8700"
+elseif g:solarized_termcolors != 256 && &t_Co >= 16
+ let s:vmode = "cterm"
+ let s:base03 = "8"
+ let s:base02 = "0"
+ let s:base01 = "10"
+ let s:base00 = "11"
+ let s:base0 = "12"
+ let s:base1 = "14"
+ let s:base2 = "7"
+ let s:base3 = "15"
+ let s:yellow = "3"
+ let s:orange = "9"
+ let s:red = "1"
+ let s:magenta = "5"
+ let s:violet = "13"
+ let s:blue = "4"
+ let s:cyan = "6"
+ let s:green = "2"
+elseif g:solarized_termcolors == 256
+ let s:vmode = "cterm"
+ let s:base03 = "234"
+ let s:base02 = "235"
+ let s:base01 = "239"
+ let s:base00 = "240"
+ let s:base0 = "244"
+ let s:base1 = "245"
+ let s:base2 = "187"
+ let s:base3 = "230"
+ let s:yellow = "136"
+ let s:orange = "166"
+ let s:red = "124"
+ let s:magenta = "125"
+ let s:violet = "61"
+ let s:blue = "33"
+ let s:cyan = "37"
+ let s:green = "64"
+else
+ let s:vmode = "cterm"
+ let s:bright = "* term=bold cterm=bold"
+" let s:base03 = "0".s:bright
+" let s:base02 = "0"
+" let s:base01 = "2".s:bright
+" let s:base00 = "3".s:bright
+" let s:base0 = "4".s:bright
+" let s:base1 = "6".s:bright
+" let s:base2 = "7"
+" let s:base3 = "7".s:bright
+" let s:yellow = "3"
+" let s:orange = "1".s:bright
+" let s:red = "1"
+" let s:magenta = "5"
+" let s:violet = "5".s:bright
+" let s:blue = "4"
+" let s:cyan = "6"
+" let s:green = "2"
+ let s:base03 = "DarkGray" " 0*
+ let s:base02 = "Black" " 0
+ let s:base01 = "LightGreen" " 2*
+ let s:base00 = "LightYellow" " 3*
+ let s:base0 = "LightBlue" " 4*
+ let s:base1 = "LightCyan" " 6*
+ let s:base2 = "LightGray" " 7
+ let s:base3 = "White" " 7*
+ let s:yellow = "DarkYellow" " 3
+ let s:orange = "LightRed" " 1*
+ let s:red = "DarkRed" " 1
+ let s:magenta = "DarkMagenta" " 5
+ let s:violet = "LightMagenta" " 5*
+ let s:blue = "DarkBlue" " 4
+ let s:cyan = "DarkCyan" " 6
+ let s:green = "DarkGreen" " 2
+
+endif
+"}}}
+" Formatting options and null values for passthrough effect "{{{
+" ---------------------------------------------------------------------
+ let s:none = "NONE"
+ let s:none = "NONE"
+ let s:t_none = "NONE"
+ let s:n = "NONE"
+ let s:c = ",undercurl"
+ let s:r = ",reverse"
+ let s:s = ",standout"
+ let s:ou = ""
+ let s:ob = ""
+"}}}
+" Background value based on termtrans setting "{{{
+" ---------------------------------------------------------------------
+if (has("gui_running") || g:solarized_termtrans == 0)
+ let s:back = s:base03
+else
+ let s:back = "NONE"
+endif
+"}}}
+" Alternate light scheme "{{{
+" ---------------------------------------------------------------------
+if &background == "light"
+ let s:temp03 = s:base03
+ let s:temp02 = s:base02
+ let s:temp01 = s:base01
+ let s:temp00 = s:base00
+ let s:base03 = s:base3
+ let s:base02 = s:base2
+ let s:base01 = s:base1
+ let s:base00 = s:base0
+ let s:base0 = s:temp00
+ let s:base1 = s:temp01
+ let s:base2 = s:temp02
+ let s:base3 = s:temp03
+ if (s:back != "NONE")
+ let s:back = s:base03
+ endif
+endif
+"}}}
+" Optional contrast schemes "{{{
+" ---------------------------------------------------------------------
+if g:solarized_contrast == "high"
+ let s:base01 = s:base00
+ let s:base00 = s:base0
+ let s:base0 = s:base1
+ let s:base1 = s:base2
+ let s:base2 = s:base3
+ let s:back = s:back
+endif
+if g:solarized_contrast == "low"
+ let s:back = s:base02
+ let s:ou = ",underline"
+endif
+"}}}
+" Overrides dependent on user specified values and environment "{{{
+" ---------------------------------------------------------------------
+if (g:solarized_bold == 0 || &t_Co == 8 )
+ let s:b = ""
+ let s:bb = ",bold"
+else
+ let s:b = ",bold"
+ let s:bb = ""
+endif
+
+if g:solarized_underline == 0
+ let s:u = ""
+else
+ let s:u = ",underline"
+endif
+
+if g:solarized_italic == 0 || s:terminal_italic == 0
+ let s:i = ""
+else
+ let s:i = ",italic"
+endif
+"}}}
+" Highlighting primitives"{{{
+" ---------------------------------------------------------------------
+
+exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'"
+exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'"
+exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'"
+exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'"
+exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'"
+exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'"
+exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'"
+exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'"
+exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'"
+exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'"
+exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'"
+exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'"
+exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'"
+exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'"
+exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'"
+exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'"
+exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'"
+exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'"
+
+exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'"
+exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'"
+exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'"
+exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'"
+exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'"
+exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'"
+exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'"
+exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'"
+exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'"
+exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'"
+exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'"
+exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'"
+exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'"
+exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'"
+exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'"
+exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'"
+exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'"
+exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'"
+
+exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'"
+exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
+exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
+exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
+exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
+exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
+exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'"
+exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'"
+exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'"
+exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'"
+exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'"
+exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'"
+" revbb (reverse bold for bright colors) is only set to actual bold in low
+" color terminals (t_co=8, such as OS X Terminal.app) and should only be used
+" with colors 8-15.
+exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'"
+exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'"
+
+if has("gui_running")
+ exe "let s:sp_none = ' guisp=".s:none ."'"
+ exe "let s:sp_back = ' guisp=".s:back ."'"
+ exe "let s:sp_base03 = ' guisp=".s:base03 ."'"
+ exe "let s:sp_base02 = ' guisp=".s:base02 ."'"
+ exe "let s:sp_base01 = ' guisp=".s:base01 ."'"
+ exe "let s:sp_base00 = ' guisp=".s:base00 ."'"
+ exe "let s:sp_base0 = ' guisp=".s:base0 ."'"
+ exe "let s:sp_base1 = ' guisp=".s:base1 ."'"
+ exe "let s:sp_base2 = ' guisp=".s:base2 ."'"
+ exe "let s:sp_base3 = ' guisp=".s:base3 ."'"
+ exe "let s:sp_green = ' guisp=".s:green ."'"
+ exe "let s:sp_yellow = ' guisp=".s:yellow ."'"
+ exe "let s:sp_orange = ' guisp=".s:orange ."'"
+ exe "let s:sp_red = ' guisp=".s:red ."'"
+ exe "let s:sp_magenta = ' guisp=".s:magenta."'"
+ exe "let s:sp_violet = ' guisp=".s:violet ."'"
+ exe "let s:sp_blue = ' guisp=".s:blue ."'"
+ exe "let s:sp_cyan = ' guisp=".s:cyan ."'"
+else
+ let s:sp_none = ""
+ let s:sp_back = ""
+ let s:sp_base03 = ""
+ let s:sp_base02 = ""
+ let s:sp_base01 = ""
+ let s:sp_base00 = ""
+ let s:sp_base0 = ""
+ let s:sp_base1 = ""
+ let s:sp_base2 = ""
+ let s:sp_base3 = ""
+ let s:sp_green = ""
+ let s:sp_yellow = ""
+ let s:sp_orange = ""
+ let s:sp_red = ""
+ let s:sp_magenta = ""
+ let s:sp_violet = ""
+ let s:sp_blue = ""
+ let s:sp_cyan = ""
+endif
+
+"}}}
+" Basic highlighting"{{{
+" ---------------------------------------------------------------------
+" note that link syntax to avoid duplicate configuration doesn't work with the
+" exe compiled formats
+
+exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back
+
+" johannst: changed comment color
+"exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none
+exe "hi! Comment" .s:fmt_ital .s:fg_base1 .s:bg_none
+" *Comment any comment
+
+exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none
+" *Constant any constant
+" String a string constant: "this is a string"
+" Character a character constant: 'c', '\n'
+" Number a number constant: 234, 0xff
+" Boolean a boolean constant: TRUE, false
+" Float a floating point constant: 2.3e10
+
+exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none
+" *Identifier any variable name
+" Function function name (also: methods for classes)
+"
+exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none
+" *Statement any statement
+" Conditional if, then, else, endif, switch, etc.
+" Repeat for, do, while, etc.
+" Label case, default, etc.
+" Operator "sizeof", "+", "*", etc.
+" Keyword any other keyword
+" Exception try, catch, throw
+
+exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none
+" *PreProc generic Preprocessor
+" Include preprocessor #include
+" Define preprocessor #define
+" Macro same as Define
+" PreCondit preprocessor #if, #else, #endif, etc.
+
+exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none
+" *Type int, long, char, etc.
+" StorageClass static, register, volatile, etc.
+" Structure struct, union, enum, etc.
+" Typedef A typedef
+
+exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none
+" *Special any special symbol
+" SpecialChar special character in a constant
+" Tag you can use CTRL-] on this
+" Delimiter character that needs attention
+" SpecialComment special things inside a comment
+" Debug debugging statements
+
+exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none
+" *Underlined text that stands out, HTML links
+
+exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none
+" *Ignore left blank, hidden |hl-Ignore|
+
+exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none
+" *Error any erroneous construct
+
+exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none
+" *Todo anything that needs extra attention; mostly the
+" keywords TODO FIXME and XXX
+"
+"}}}
+" Extended highlighting "{{{
+" ---------------------------------------------------------------------
+if (g:solarized_visibility=="high")
+ exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none
+ exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none
+elseif (g:solarized_visibility=="low")
+ exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none
+ exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none
+else
+ exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02
+ exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none
+endif
+exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb
+exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb
+exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb
+exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none
+exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none
+exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none
+exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02
+exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none
+if ( has("gui_running") || &t_Co > 8 )
+ exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00
+else
+ exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02
+endif
+exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none
+exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb
+exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none
+exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb
+exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03
+exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02
+if (g:solarized_diffmode=="high")
+exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none
+exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none
+exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none
+exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none
+elseif (g:solarized_diffmode=="low")
+exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green
+exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow
+exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none
+exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue
+else " normal
+ if has("gui_running")
+exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green
+exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow
+exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02
+exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue
+ else
+exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green
+exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow
+exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02
+exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue
+ endif
+endif
+exe "hi! SignColumn" .s:fmt_none .s:fg_base0
+exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red
+exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet
+exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan
+exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow
+exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb
+exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb
+exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb
+exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb
+exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
+exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
+exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu
+exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02
+exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1
+exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02
+exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0
+hi! link lCursor Cursor
+exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01
+
+"}}}
+" vim syntax highlighting "{{{
+" ---------------------------------------------------------------------
+"exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital
+"hi! link vimComment Comment
+"hi! link vimLineComment Comment
+hi! link vimVar Identifier
+hi! link vimFunc Function
+hi! link vimUserFunc Function
+hi! link helpSpecial Special
+hi! link vimSet Normal
+hi! link vimSetEqual Normal
+exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none
+exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none
+exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none
+exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none
+exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none
+exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none
+exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none
+exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none
+exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none
+exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none
+exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none
+exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none
+exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none
+"}}}
+" diff highlighting "{{{
+" ---------------------------------------------------------------------
+hi! link diffAdded Statement
+hi! link diffLine Identifier
+"}}}
+" git & gitcommit highlighting "{{{
+"git
+"exe "hi! gitDateHeader"
+"exe "hi! gitIdentityHeader"
+"exe "hi! gitIdentityKeyword"
+"exe "hi! gitNotesHeader"
+"exe "hi! gitReflogHeader"
+"exe "hi! gitKeyword"
+"exe "hi! gitIdentity"
+"exe "hi! gitEmailDelimiter"
+"exe "hi! gitEmail"
+"exe "hi! gitDate"
+"exe "hi! gitMode"
+"exe "hi! gitHashAbbrev"
+"exe "hi! gitHash"
+"exe "hi! gitReflogMiddle"
+"exe "hi! gitReference"
+"exe "hi! gitStage"
+"exe "hi! gitType"
+"exe "hi! gitDiffAdded"
+"exe "hi! gitDiffRemoved"
+"gitcommit
+"exe "hi! gitcommitSummary"
+exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none
+hi! link gitcommitUntracked gitcommitComment
+hi! link gitcommitDiscarded gitcommitComment
+hi! link gitcommitSelected gitcommitComment
+exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none
+exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none
+exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none
+hi! link gitcommitNoBranch gitcommitBranch
+exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none
+exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none
+"exe "hi! gitcommitUnmergedType"
+"exe "hi! gitcommitType"
+"exe "hi! gitcommitNoChanges"
+"exe "hi! gitcommitHeader"
+exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none
+exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none
+exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none
+exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none
+exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none
+exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none
+hi! link gitcommitDiscardedArrow gitcommitDiscardedFile
+hi! link gitcommitSelectedArrow gitcommitSelectedFile
+hi! link gitcommitUnmergedArrow gitcommitUnmergedFile
+"exe "hi! gitcommitArrow"
+"exe "hi! gitcommitOverflow"
+"exe "hi! gitcommitBlank"
+" }}}
+" html highlighting "{{{
+" ---------------------------------------------------------------------
+exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none
+exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none
+exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none
+exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none
+exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none
+exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none
+exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none
+"}}}
+" perl highlighting "{{{
+" ---------------------------------------------------------------------
+exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none
+exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none
+exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none
+
+"}}}
+" tex highlighting "{{{
+" ---------------------------------------------------------------------
+exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none
+exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none
+exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
+exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
+exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none
+"}}}
+" ruby highlighting "{{{
+" ---------------------------------------------------------------------
+exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold
+"rubyInclude
+"rubySharpBang
+"rubyAccess
+"rubyPredefinedVariable
+"rubyBoolean
+"rubyClassVariable
+"rubyBeginEnd
+"rubyRepeatModifier
+"hi! link rubyArrayDelimiter Special " [ , , ]
+"rubyCurlyBlock { , , }
+
+"hi! link rubyClass Keyword
+"hi! link rubyModule Keyword
+"hi! link rubyKeyword Keyword
+"hi! link rubyOperator Operator
+"hi! link rubyIdentifier Identifier
+"hi! link rubyInstanceVariable Identifier
+"hi! link rubyGlobalVariable Identifier
+"hi! link rubyClassVariable Identifier
+"hi! link rubyConstant Type
+"}}}
+" haskell syntax highlighting"{{{
+" ---------------------------------------------------------------------
+" For use with syntax/haskell.vim : Haskell Syntax File
+" http://www.vim.org/scripts/script.php?script_id=3034
+" See also Steffen Siering's github repository:
+" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim
+" ---------------------------------------------------------------------
+"
+" Treat True and False specially, see the plugin referenced above
+let hs_highlight_boolean=1
+" highlight delims, see the plugin referenced above
+let hs_highlight_delimiters=1
+
+exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none
+
+exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none
+
+exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none
+exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none
+exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr
+exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none
+hi! link hsImportParams Delimiter
+hi! link hsDelimTypeExport Delimiter
+hi! link hsModuleStartLabel hsStructure
+hi! link hsModuleWhereLabel hsModuleStartLabel
+
+" following is for the haskell-conceal plugin
+" the first two items don't have an impact, but better safe
+exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none
+
+"}}}
+" pandoc markdown syntax highlighting "{{{
+" ---------------------------------------------------------------------
+
+"PandocHiLink pandocNormalBlock
+exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital
+exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none
+hi! link pandocVerbatimBlockDeep pandocVerbatimBlock
+hi! link pandocCodeBlock pandocVerbatimBlock
+hi! link pandocCodeBlockDelim pandocVerbatimBlock
+exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr
+
+" Definitions
+" ---------------------------------------------------------------------
+let s:fg_pdef = s:fg_violet
+exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none
+exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd
+exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold
+exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital
+exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold
+exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
+exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
+exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr
+exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
+exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
+exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
+
+" Tables
+" ---------------------------------------------------------------------
+let s:fg_ptable = s:fg_blue
+exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none
+exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none
+hi! link pandocTableStructureTop pandocTableStructre
+hi! link pandocTableStructureEnd pandocTableStructre
+exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none
+exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none
+exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital
+exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold
+exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
+exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr
+exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none
+exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
+exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
+
+" Headings
+" ---------------------------------------------------------------------
+let s:fg_phead = s:fg_orange
+exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold
+exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
+exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
+exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
+exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi
+exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr
+exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+
+" Links
+" ---------------------------------------------------------------------
+exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr
+exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb
+exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr
+exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi
+exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00
+exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00
+exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb
+exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr
+exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold
+exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb
+exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none
+exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr
+exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
+
+" Main Styles
+" ---------------------------------------------------------------------
+exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital
+exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold
+exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi
+exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr
+exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none
+exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none
+
+exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold
+exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr
+hi! link pandocEscapedCharacter pandocEscapePair
+hi! link pandocLineBreak pandocEscapePair
+
+" Embedded Code
+" ---------------------------------------------------------------------
+exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold
+hi! link pandocMetadataTitle pandocMetadata
+
+"}}}
+" Utility autocommand "{{{
+" ---------------------------------------------------------------------
+" In cases where Solarized is initialized inside a terminal vim session and
+" then transferred to a gui session via the command `:gui`, the gui vim process
+" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui`
+" related code that sets gui specific values isn't executed.
+"
+" Currently, Solarized sets only the cterm or gui values for the colorscheme
+" depending on gui or terminal mode. It's possible that, if the following
+" autocommand method is deemed excessively poor form, that approach will be
+" used again and the autocommand below will be dropped.
+"
+" However it seems relatively benign in this case to include the autocommand
+" here. It fires only in cases where vim is transferring from terminal to gui
+" mode (detected with the script scope s:vmode variable). It also allows for
+" other potential terminal customizations that might make gui mode suboptimal.
+"
+autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif
+"}}}
+" Highlight Trailing Space {{{
+" Experimental: Different highlight when on cursorline
+function! s:SolarizedHiTrail()
+ if g:solarized_hitrail==0
+ hi! clear solarizedTrailingSpace
+ else
+ syn match solarizedTrailingSpace "\s*$"
+ exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red
+ endif
+endfunction
+augroup SolarizedHiTrail
+ autocmd!
+ if g:solarized_hitrail==1
+ autocmd! Syntax * call s:SolarizedHiTrail()
+ autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif
+ endif
+augroup END
+" }}}
+" Menus "{{{
+" ---------------------------------------------------------------------
+" Turn off Solarized menu by including the following assignment in your .vimrc:
+"
+" let g:solarized_menu=0
+
+function! s:SolarizedOptions()
+ new "new buffer
+ setf vim "vim filetype
+ let failed = append(0, s:defaults_list)
+ let failed = append(0, s:colorscheme_list)
+ let failed = append(0, s:options_list)
+ let failed = append(0, s:lazycat_list)
+ 0 "jump back to the top
+endfunction
+if !exists(":SolarizedOptions")
+ command SolarizedOptions :call s:SolarizedOptions()
+endif
+
+function! SolarizedMenu()
+ if exists("g:loaded_solarized_menu")
+ try
+ silent! aunmenu Solarized
+ endtry
+ endif
+ let g:loaded_solarized_menu = 1
+
+ if g:colors_name == "solarized" && g:solarized_menu != 0
+
+ amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized<CR>
+ amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized<CR>
+ amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized<CR>
+ an &Solarized.&Contrast.-sep- <Nop>
+ amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast'<CR>
+
+ amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized<CR>
+ amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized<CR>
+ amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized<CR>
+ an &Solarized.&Visibility.-sep- <Nop>
+ amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility'<CR>
+
+ amenu &Solarized.&Background.&Toggle\ Background :ToggleBG<CR>
+ amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized<CR>
+ amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized<CR>
+ an &Solarized.&Background.-sep- <Nop>
+ amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg<CR>
+
+ if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif
+ exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized<CR>"
+ if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif
+ exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized<CR>"
+ if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif
+ exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized<CR>"
+
+ amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized<CR>
+ amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized<CR>
+ amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized<CR>
+
+ if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif
+ exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized<CR>"
+ an &Solarized.&Experimental.-sep- <Nop>
+ amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail'<CR>
+
+ an &Solarized.-sep1- <Nop>
+
+ amenu &Solarized.&Autogenerate\ options :SolarizedOptions<CR>
+
+ an &Solarized.-sep2- <Nop>
+
+ amenu &Solarized.&Help.&Solarized\ Help :help solarized<CR>
+ amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg<CR>
+ amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu<CR>
+
+ an 9999.77 &Help.&Solarized\ Colorscheme :help solarized<CR>
+ an 9999.78 &Help.&Toggle\ Background :help togglebg<CR>
+ an 9999.79 &Help.-sep3- <Nop>
+
+ endif
+endfunction
+
+autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif
+
+"}}}
+" License "{{{
+" ---------------------------------------------------------------------
+"
+" Copyright (c) 2011 Ethan Schoonover
+"
+" Permission is hereby granted, free of charge, to any person obtaining a copy
+" of this software and associated documentation files (the "Software"), to deal
+" in the Software without restriction, including without limitation the rights
+" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+" copies of the Software, and to permit persons to whom the Software is
+" furnished to do so, subject to the following conditions:
+"
+" The above copyright notice and this permission notice shall be included in
+" all copies or substantial portions of the Software.
+"
+" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+" THE SOFTWARE.
+"
+" vim:foldmethod=marker:foldlevel=0
+"}}}