summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules18
m---------bundle/markdown0
m---------bundle/neco-ghc0
m---------bundle/neocomplete0
m---------bundle/tabular0
m---------bundle/unbundle0
m---------bundle/vimproc0
-rw-r--r--colors/gruvbox.vim1027
-rw-r--r--colors/hemisu.vim215
-rw-r--r--colors/jellybeans.vim551
-rw-r--r--colors/molokai.vim276
-rw-r--r--colors/seoul256.vim341
-rw-r--r--colors/solarized.vim1117
-rw-r--r--colors/twilight.vim114
-rw-r--r--colors/wombat256mod.vim96
-rw-r--r--colors/xoria256.vim142
-rw-r--r--config/misc.vim6
-rw-r--r--config/neocomplete.vim85
-rw-r--r--skeleton/page7
19 files changed, 3995 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..851497d
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,18 @@
+[submodule "bundle/unbundle"]
+ path = bundle/unbundle
+ url = https://github.com/sunaku/vim-unbundle.git
+[submodule "bundle/neocomplete"]
+ path = bundle/neocomplete
+ url = https://github.com/Shougo/neocomplete.vim.git
+[submodule "bundle/neco-ghc"]
+ path = bundle/neco-ghc
+ url = https://github.com/eagletmt/neco-ghc
+[submodule "bundle/vimproc"]
+ path = bundle/vimproc
+ url = https://github.com/Shougo/vimproc.vim
+[submodule "bundle/markdown"]
+ path = bundle/markdown
+ url = https://github.com/plasticboy/vim-markdown.git
+[submodule "bundle/tabular"]
+ path = bundle/tabular
+ url = https://github.com/godlygeek/tabular.git
diff --git a/bundle/markdown b/bundle/markdown
new file mode 160000
+Subproject c4975a40eca842dfb11cb3e9aa938451146c9f1
diff --git a/bundle/neco-ghc b/bundle/neco-ghc
new file mode 160000
+Subproject a45f4f98ee3f25eaa64a39328c253d4f78cd5fd
diff --git a/bundle/neocomplete b/bundle/neocomplete
new file mode 160000
+Subproject cb1ae10a8a394dd5a13c4b4865454e6937dce31
diff --git a/bundle/tabular b/bundle/tabular
new file mode 160000
+Subproject 60f25648814f0695eeb6c1040d97adca93c4e0b
diff --git a/bundle/unbundle b/bundle/unbundle
new file mode 160000
+Subproject 8f150111104900d786d8f874fd6730cc6de3ef3
diff --git a/bundle/vimproc b/bundle/vimproc
new file mode 160000
+Subproject 0f68bcd93399ecbcde3eaa4efd09107314c9bde
diff --git a/colors/gruvbox.vim b/colors/gruvbox.vim
new file mode 100644
index 0000000..3bdd6c0
--- /dev/null
+++ b/colors/gruvbox.vim
@@ -0,0 +1,1027 @@
+" -----------------------------------------------------------------------------
+" File: gruvbox.vim
+" Description: Retro groove color scheme for Vim
+" Author: morhetz <morhetz@gmail.com>
+" Source: https://github.com/morhetz/gruvbox
+" Last Modified: 10 Nov 2014
+" -----------------------------------------------------------------------------
+
+" 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')
+ let g:gruvbox_italic=1
+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_italicize_comments')
+ let g:gruvbox_italicize_comments=1
+endif
+if !exists('g:gruvbox_italicize_strings')
+ let g:gruvbox_italicize_strings=0
+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_hls_cursor')
+ let g:gruvbox_hls_cursor='orange'
+endif
+
+if !exists('g:gruvbox_sign_column')
+ let g:gruvbox_sign_column='dark1'
+endif
+
+if !exists('g:gruvbox_color_column')
+ let g:gruvbox_color_column='dark1'
+endif
+
+if !exists('g:gruvbox_vert_split')
+ let g:gruvbox_vert_split='dark2'
+endif
+
+if !exists('g:gruvbox_invert_signs')
+ let g:gruvbox_invert_signs=0
+endif
+
+if !exists('g:gruvbox_invert_selection')
+ let g:gruvbox_invert_selection=1
+endif
+
+if !exists('g:gruvbox_contrast')
+ let g:gruvbox_contrast='medium'
+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
+
+if !exists('g:gruvbox_invert_tabline')
+ let g:gruvbox_invert_tabline=0
+endif
+
+let s:is_dark=(&background == 'dark')
+
+" }}}
+" Palette: {{{
+
+let s:gb = {}
+
+if s:is_dark
+ let s:gb.dark0 = ['282828', 235] " 40-40-40
+ 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.medium = ['928374', 245] " 146-131-116
+
+ let s:gb.light0 = ['fdf4c1', 229] " 253-244-193
+ 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.red = ['fb4934', 167] " 251-73-52
+ let s:gb.green = ['b8bb26', 142] " 184-187-38
+ let s:gb.yellow = ['fabd2f', 214] " 250-189-47
+ let s:gb.blue = ['83a598', 109] " 131-165-152
+ let s:gb.purple = ['d3869b', 175] " 211-134-155
+ let s:gb.aqua = ['8ec07c', 108] " 142-192-124
+ let s:gb.orange = ['fe8019', 208] " 254-128-25
+
+ if g:gruvbox_termcolors == 16
+ let s:gb.dark0 = ['282828', 0]
+ let s:gb.light4 = ['a89984', 7]
+ let s:gb.medium = ['928374', 8]
+ let s:gb.red = ['fb4934', 9]
+ let s:gb.green = ['b8bb26', 10]
+ let s:gb.yellow = ['fabd2f', 11]
+ let s:gb.blue = ['83a598', 12]
+ let s:gb.purple = ['d3869b', 13]
+ let s:gb.aqua = ['8ec07c', 14]
+ let s:gb.light1 = ['ebdbb2', 15]
+ endif
+
+ if g:gruvbox_contrast == 'soft'
+ let s:gb.dark0 = ['32302f', 236] " 50-48-47
+ endif
+
+ if g:gruvbox_contrast == 'hard'
+ let s:gb.dark0 = ['1d2021', 234] " 29-32-33
+ endif
+
+ if g:gruvbox_contrast_dark == 'soft'
+ let s:gb.dark0 = ['32302f', 236] " 50-48-47
+ endif
+
+ if g:gruvbox_contrast_dark == 'hard'
+ let s:gb.dark0 = ['1d2021', 234] " 29-32-33
+ endif
+else
+ let s:gb.dark0 = ['fbf1c7', 229] " 251-241-199
+ let s:gb.dark1 = ['ebdbb2', 223] " 235-219-178
+ let s:gb.dark2 = ['d5c4a1', 250] " 213-196-161
+ let s:gb.dark3 = ['bdae93', 248] " 189-174-147
+ let s:gb.dark4 = ['a89984', 246] " 168-153-132
+
+ let s:gb.medium = ['928374', 244] " 146-131-116
+
+ let s:gb.light0 = ['282828', 235] " 40-40-40
+ let s:gb.light1 = ['3c3836', 237] " 60-56-54
+ let s:gb.light2 = ['504945', 239] " 80-73-69
+ let s:gb.light3 = ['665c54', 241] " 102-92-84
+ let s:gb.light4 = ['7c6f64', 243] " 124-111-100
+
+ let s:gb.light4_256 = ['7c6f64', 243] " 124-111-100
+
+ let s:gb.red = ['9d0006', 88] " 157-0-6
+ let s:gb.green = ['79740e', 100] " 121-116-14
+ let s:gb.yellow = ['b57614', 136] " 181-118-20
+ let s:gb.blue = ['076678', 24] " 7-102-120
+ let s:gb.purple = ['8f3f71', 96] " 143-63-113
+ let s:gb.aqua = ['427b58', 66] " 66-123-88
+ let s:gb.orange = ['af3a03', 130] " 175-58-3
+
+ if g:gruvbox_termcolors == 16
+ let s:gb.dark0 = ['fbf1c7', 0]
+ let s:gb.light4 = ['7c6f64', 7]
+ let s:gb.medium = ['928374', 8]
+ let s:gb.red = ['9d0006', 9]
+ let s:gb.green = ['79740e', 10]
+ let s:gb.yellow = ['b57614', 11]
+ let s:gb.blue = ['076678', 12]
+ let s:gb.purple = ['8f3f71', 13]
+ let s:gb.aqua = ['427b58', 14]
+ let s:gb.light1 = ['3c3836', 15]
+ endif
+
+ if g:gruvbox_contrast == 'soft'
+ let s:gb.dark0 = ['f2e5bc', 228] " 242-229-188
+ endif
+
+ if g:gruvbox_contrast == 'hard'
+ let s:gb.dark0 = ['f9f5d7', 230] " 249-245-215
+ endif
+
+ if g:gruvbox_contrast_light == 'soft'
+ let s:gb.dark0 = ['f2e5bc', 228] " 242-229-188
+ endif
+
+ if g:gruvbox_contrast_light == 'hard'
+ let s:gb.dark0 = ['f9f5d7', 230] " 249-245-215
+ endif
+endif
+
+" }}}
+" Highlighting Function: {{{
+
+function! s:HL(group, fg, ...)
+ " Arguments: group, guifg, guibg, gui, guisp
+
+ let histring = 'hi ' . a:group . ' '
+
+ if strlen(a:fg)
+ if a:fg == 'fg'
+ let histring .= 'guifg=fg ctermfg=fg '
+ elseif a:fg == 'bg'
+ let histring .= 'guifg=bg ctermfg=bg '
+ elseif a:fg == 'none'
+ let histring .= 'guifg=NONE ctermfg=NONE '
+ else
+ let c = get(s:gb, a:fg)
+ let histring .= 'guifg=#' . c[0] . ' ctermfg=' . c[1] . ' '
+ endif
+ endif
+
+ if a:0 >= 1 && strlen(a:1)
+ if a:1 == 'bg'
+ let histring .= 'guibg=bg ctermbg=bg '
+ elseif a:fg == 'fg'
+ let histring .= 'guibg=fg ctermbg=fg '
+ elseif a:1 == 'none'
+ let histring .= 'guibg=NONE ctermbg=NONE '
+ else
+ let c = get(s:gb, a:1)
+ let histring .= 'guibg=#' . c[0] . ' ctermbg=' . c[1] . ' '
+ endif
+ else
+ let histring .= 'guibg=NONE ctermbg=NONE '
+ endif
+
+ " Hotfixing #24;
+ " TODO: get rid of this spaghetti
+ if a:0 >= 2 && strlen(a:2)
+ if a:2 == 'none'
+ let histring .= 'gui=NONE cterm=NONE '
+ elseif a:2 == 'italic' && g:gruvbox_italic == 0
+ let histring .= 'gui=NONE cterm=NONE '
+ elseif a:2 == 'bold' && g:gruvbox_bold == 0
+ let histring .= 'gui=NONE cterm=NONE '
+ elseif a:2 == 'bold,inverse' && g:gruvbox_bold == 0
+ let histring .= 'gui=inverse cterm=inverse '
+ elseif a:2 == 'undercurl' && g:gruvbox_undercurl == 0
+ let histring .= 'gui=NONE cterm=NONE '
+ elseif a:2 == 'underline' && g:gruvbox_underline == 0
+ let histring .= 'gui=NONE cterm=NONE '
+ elseif a:2 == 'bold,italic'
+ if g:gruvbox_italic == 0 && g:gruvbox_bold == 0
+ let histring .= 'gui=NONE cterm=NONE '
+ elseif g:gruvbox_italic == 0
+ let histring .= 'gui=bold cterm=bold '
+ elseif g:gruvbox_bold == 0
+ let histring .= 'gui=italic cterm=italic '
+ else
+ let histring .= 'gui=' . a:2 . ' cterm=' . a:2 . ' '
+ endif
+ elseif a:2 == 'bold,underline'
+ if g:gruvbox_underline == 0 && g:gruvbox_bold == 0
+ let histring .= 'gui=NONE cterm=NONE '
+ elseif g:gruvbox_underline == 0
+ let histring .= 'gui=bold cterm=bold '
+ elseif g:gruvbox_bold == 0
+ let histring .= 'gui=underline cterm=underline '
+ else
+ let histring .= 'gui=' . a:2 . ' cterm=' . a:2 . ' '
+ endif
+ elseif a:2 == 'underline,italic'
+ if g:gruvbox_underline == 0 && g:gruvbox_italic == 0
+ let histring .= 'gui=NONE cterm=NONE '
+ elseif g:gruvbox_underline == 0
+ let histring .= 'gui=italic cterm=italic '
+ elseif g:gruvbox_italic == 0
+ let histring .= 'gui=underline cterm=underline '
+ else
+ let histring .= 'gui=' . a:2 . ' cterm=' . a:2 . ' '
+ endif
+ elseif a:2 == 'bold,underline,italic'
+ if g:gruvbox_italic == 0 && g:gruvbox_bold == 0
+ let histring .= 'gui=underline cterm=underline '
+ elseif g:gruvbox_italic == 0
+ let histring .= 'gui=bold,underline cterm=bold,underline '
+ elseif g:gruvbox_bold == 0
+ let histring .= 'gui=italic,underline cterm=italic,underline '
+ else
+ let histring .= 'gui=' . a:2 . ' cterm=' . a:2 . ' '
+ endif
+ else
+ let histring .= 'gui=' . a:2 . ' cterm=' . a:2 . ' '
+ endif
+ else
+ let histring .= 'gui=NONE cterm=NONE '
+ endif
+
+ if a:0 >= 3 && strlen(a:3)
+ if a:3 == 'none'
+ let histring .= 'guisp=NONE '
+ else
+ let c = get(s:gb, a:3)
+ let histring .= 'guisp=#' . c[0] . ' '
+ endif
+ endif
+
+ execute histring
+endfunction
+
+" }}}
+
+" Vanilla colorscheme ---------------------------------------------------------
+" General UI: {{{
+
+" Normal text
+call s:HL('Normal', 'light1', 'dark0')
+
+" 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', 'none', 'dark1')
+ " Screen column that the cursor is
+ call s:HL('CursorColumn', 'none', 'dark1')
+
+if g:gruvbox_invert_tabline == 0
+ " Tab pages line filler
+ call s:HL('TabLineFill', 'dark4', 'bg')
+ " Active tab page label
+ call s:HL('TabLineSel', 'bg', 'dark4', 'bold')
+ " Not active tab page label
+ call s:HL('TabLine', 'dark4', 'bg')
+else
+ call s:HL('TabLineFill', 'bg', 'dark4')
+ call s:HL('TabLineSel', 'dark4', 'bg', 'bold')
+ call s:HL('TabLine', 'bg', 'dark4')
+endif
+
+ " Match paired bracket under the cursor
+ call s:HL('MatchParen', 'none', 'dark3', 'bold')
+endif
+
+if version >= 703
+ " Highlighted screen columns
+ call s:HL('ColorColumn', 'none', g:gruvbox_color_column)
+
+ " Concealed element: \lambda → λ
+ call s:HL('Conceal', 'blue', 'none')
+
+ " Line number of CursorLine
+ call s:HL('CursorLineNr', 'yellow', 'dark1')
+endif
+
+call s:HL('NonText', 'dark2')
+call s:HL('SpecialKey', 'dark2')
+
+if g:gruvbox_invert_selection == 0
+ call s:HL('Visual', 'none', 'dark2')
+ call s:HL('VisualNOS', 'none', 'dark2')
+else
+ call s:HL('Visual', 'none', 'dark3', 'inverse')
+ call s:HL('VisualNOS', 'none', 'dark3', 'inverse')
+endif
+
+call s:HL('Search', 'dark0', 'yellow')
+call s:HL('IncSearch', 'dark0', g:gruvbox_hls_cursor)
+
+call s:HL('Underlined', 'blue', 'none', 'underline')
+
+call s:HL('StatusLine', 'dark4', 'dark0', 'bold,inverse')
+call s:HL('StatusLineNC', 'dark2', 'light4', 'bold,inverse')
+
+" The column separating vertically split windows
+call s:HL('VertSplit', 'light4', g:gruvbox_vert_split)
+
+" Current match in wildmenu completion
+call s:HL('WildMenu', 'blue', 'dark2', 'bold')
+
+" Directory names, special names in listing
+call s:HL('Directory', 'green', 'none', 'bold')
+
+" Titles for output from :set all, :autocmd, etc.
+call s:HL('Title', 'green', 'none', 'bold')
+
+" Error messages on the command line
+call s:HL('ErrorMsg', 'bg', 'red', 'bold')
+" More prompt: -- More --
+call s:HL('MoreMsg', 'yellow', 'none', 'bold')
+" Current mode message: -- INSERT --
+call s:HL('ModeMsg', 'yellow', 'none', 'bold')
+" 'Press enter' prompt and yes/no questions
+call s:HL('Question', 'orange', 'none', 'bold')
+" Warning messages
+call s:HL('WarningMsg', 'red', 'none', 'bold')
+
+" }}}
+" Gutter: {{{
+
+" Line number for :number and :# commands
+call s:HL('LineNr', 'dark4')
+
+" Column where signs are displayed
+call s:HL('SignColumn', 'none', g:gruvbox_sign_column)
+
+" Line used for closed folds
+call s:HL('Folded', 'medium', 'dark1', 'italic')
+" Column where folds are displayed
+call s:HL('FoldColumn', 'medium', 'dark1')
+
+" }}}
+" Cursor: {{{
+
+" Character under cursor
+call s:HL('Cursor', 'none', 'none', 'inverse')
+" Visual mode cursor, selection
+call s:HL('vCursor', 'none', 'none', 'inverse')
+" Input moder cursor
+call s:HL('iCursor', 'none', 'none', 'inverse')
+" Language mapping cursor
+call s:HL('lCursor', 'none', 'none', 'inverse')
+
+" }}}
+" Syntax Highlighting: {{{
+
+if g:gruvbox_improved_strings == 0
+ call s:HL('Special', 'orange')
+else
+ call s:HL('Special', 'dark1', 'orange', 'italic')
+endif
+
+if g:gruvbox_italicize_comments == 0
+ call s:HL('Comment', 'medium', 'none')
+else
+ call s:HL('Comment', 'medium', 'none', 'italic')
+endif
+call s:HL('Todo', 'fg', 'bg', 'bold')
+call s:HL('Error', 'bg', 'red', 'bold')
+
+" Generic statement
+call s:HL('Statement', 'red')
+" if, then, else, endif, swicth, etc.
+call s:HL('Conditional', 'red')
+" for, do, while, etc.
+call s:HL('Repeat', 'red')
+" case, default, etc.
+call s:HL('Label', 'red')
+" try, catch, throw
+call s:HL('Exception', 'red')
+" sizeof, "+", "*", etc.
+hi! link Operator Normal
+" Any other keyword
+call s:HL('Keyword', 'red')
+
+" Variable name
+call s:HL('Identifier', 'blue')
+" Function name
+call s:HL('Function', 'green', 'none', 'bold')
+
+" Generic preprocessor
+call s:HL('PreProc', 'aqua')
+" Preprocessor #include
+call s:HL('Include', 'aqua')
+" Preprocessor #define
+call s:HL('Define', 'aqua')
+" Same as Define
+call s:HL('Macro', 'aqua')
+" Preprocessor #if, #else, #endif, etc.
+call s:HL('PreCondit', 'aqua')
+
+" Generic constant
+call s:HL('Constant', 'purple')
+" Character constant: 'c', '/n'
+call s:HL('Character', 'purple')
+" String constant: "this is a string"
+if g:gruvbox_italicize_strings == 0
+ call s:HL('String', 'green')
+else
+ if g:gruvbox_improved_strings == 0
+ call s:HL('String', 'green', 'none', 'italic')
+ else
+ call s:HL('String', 'dark1', 'light1', 'italic')
+ endif
+endif
+" Boolean constant: TRUE, false
+call s:HL('Boolean', 'purple')
+" Number constant: 234, 0xff
+call s:HL('Number', 'purple')
+" Floating point constant: 2.3e10
+call s:HL('Float', 'purple')
+
+" Generic type
+call s:HL('Type', 'yellow')
+" static, register, volatile, etc
+call s:HL('StorageClass', 'orange')
+" struct, union, enum, etc.
+call s:HL('Structure', 'aqua')
+" typedef
+call s:HL('Typedef', 'yellow')
+
+" }}}
+" Completion Menu: {{{
+
+if version >= 700
+ " Popup menu: normal item
+ call s:HL('Pmenu', 'light1', 'dark2')
+ " Popup menu: selected item
+ call s:HL('PmenuSel', 'dark2', 'blue', 'bold')
+ " Popup menu: scrollbar
+ call s:HL('PmenuSbar', 'none', 'dark2')
+ " Popup menu: scrollbar thumb
+ call s:HL('PmenuThumb', 'none', 'dark4')
+endif
+
+" }}}
+" Diffs: {{{
+
+call s:HL('DiffDelete', 'dark0', 'red')
+call s:HL('DiffAdd', 'dark0', 'green')
+"call s:HL('DiffChange', 'dark0', 'blue')
+"call s:HL('DiffText', 'dark0', 'yellow')
+
+" Alternative setting
+call s:HL('DiffChange', 'dark0', 'aqua')
+call s:HL('DiffText', 'dark0', 'yellow')
+
+" }}}
+" Spelling: {{{
+
+if has("spell")
+ " Not capitalised word, or compile warnings
+ if g:gruvbox_improved_warnings == 0
+ call s:HL('SpellCap', 'none', 'none', 'undercurl', 'red')
+ else
+ call s:HL('SpellCap', 'green', 'none', 'italic,bold')
+ endif
+ " Not recognized word
+ call s:HL('SpellBad', 'none', 'none', 'undercurl', 'blue')
+ " Wrong spelling for selected region
+ call s:HL('SpellLocal', 'none', 'none', 'undercurl', 'aqua')
+ " Rare word
+ call s:HL('SpellRare', 'none', 'none', 'undercurl', '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', 'yellow', 'yellow')
+hi! link SneakStreakStatusLine Search
+
+" }}}
+" Indent Guides: {{{
+
+let g:indent_guides_auto_colors = 0
+
+if g:gruvbox_invert_indent_guides == 0
+ call s:HL('IndentGuidesOdd', 'bg', 'dark2')
+ call s:HL('IndentGuidesEven', 'bg', 'dark1')
+else
+ call s:HL('IndentGuidesOdd', 'bg', 'dark2', 'inverse')
+ call s:HL('IndentGuidesEven', 'bg', 'dark3', 'inverse')
+endif
+
+" }}}
+" IndentLine: {{{
+
+let g:indentLine_color_term = s:gb.dark2[1]
+let g:indentLine_color_gui = '#' . s:gb.dark2[0]
+
+" }}}
+" 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: {{{
+
+if g:gruvbox_invert_signs == 0
+ call s:HL('GitGutterAdd', 'green', g:gruvbox_sign_column)
+ call s:HL('GitGutterChange', 'aqua', g:gruvbox_sign_column)
+ call s:HL('GitGutterDelete', 'red', g:gruvbox_sign_column)
+ call s:HL('GitGutterChangeDelete', 'aqua', g:gruvbox_sign_column)
+else
+ call s:HL('GitGutterAdd', 'green', g:gruvbox_sign_column, 'inverse')
+ call s:HL('GitGutterChange', 'aqua', g:gruvbox_sign_column, 'inverse')
+ call s:HL('GitGutterDelete', 'red', g:gruvbox_sign_column, 'inverse')
+ call s:HL('GitGutterChangeDelete', 'aqua', g:gruvbox_sign_column, 'inverse')
+endif
+
+" }}}
+" Signify: {{{
+
+if g:gruvbox_invert_signs == 0
+ call s:HL('SignifySignAdd', 'green', g:gruvbox_sign_column)
+ call s:HL('SignifySignChange ', 'aqua', g:gruvbox_sign_column)
+ call s:HL('SignifySignDelete', 'red', g:gruvbox_sign_column)
+else
+ call s:HL('SignifySignAdd', 'green', g:gruvbox_sign_column, 'inverse')
+ call s:HL('SignifySignChange ', 'aqua', g:gruvbox_sign_column, 'inverse')
+ call s:HL('SignifySignDelete', 'red', g:gruvbox_sign_column, 'inverse')
+endif
+
+" }}}
+" Syntastic: {{{
+
+call s:HL('SyntasticError', 'none', 'none', 'undercurl', 'red')
+call s:HL('SyntasticWarning', 'none', 'none', 'undercurl', 'yellow')
+
+if g:gruvbox_invert_signs == 0
+ call s:HL('SyntasticErrorSign', 'red', g:gruvbox_sign_column)
+ call s:HL('SyntasticWarningSign', 'yellow', g:gruvbox_sign_column)
+else
+ call s:HL('SyntasticErrorSign', 'red', g:gruvbox_sign_column, 'inverse')
+ call s:HL('SyntasticWarningSign', 'yellow', g:gruvbox_sign_column, 'inverse')
+endif
+
+" }}}
+" Signature: {{{
+
+if g:gruvbox_invert_signs == 0
+ call s:HL('SignatureMarkerText', 'purple', g:gruvbox_sign_column)
+ call s:HL('SignatureMarkText', 'blue', g:gruvbox_sign_column)
+else
+ call s:HL('SignatureMarkerText', 'purple', g:gruvbox_sign_column, 'inverse')
+ call s:HL('SignatureMarkText', 'blue', g:gruvbox_sign_column, 'inverse')
+endif
+
+let g:SignatureMarkerTextHL='"SignatureMarkerText"'
+let g:SignatureMarkTextHL='"SignatureMarkText"'
+
+" }}}
+" ShowMarks: {{{
+
+if g:gruvbox_invert_signs == 0
+ call s:HL('ShowMarksHLl', 'blue', g:gruvbox_sign_column)
+ call s:HL('ShowMarksHLu', 'blue', g:gruvbox_sign_column)
+ call s:HL('ShowMarksHLo', 'blue', g:gruvbox_sign_column)
+ call s:HL('ShowMarksHLm', 'blue', g:gruvbox_sign_column)
+else
+ call s:HL('ShowMarksHLl', 'blue', g:gruvbox_sign_column, 'inverse')
+ call s:HL('ShowMarksHLu', 'blue', g:gruvbox_sign_column, 'inverse')
+ call s:HL('ShowMarksHLo', 'blue', g:gruvbox_sign_column, 'inverse')
+ call s:HL('ShowMarksHLm', 'blue', g:gruvbox_sign_column, 'inverse')
+endif
+
+" }}}
+" CtrlP: {{{
+
+call s:HL('CtrlPMatch', 'yellow')
+call s:HL('CtrlPNoEntries', 'red')
+call s:HL('CtrlPPrtBase', 'dark2')
+call s:HL('CtrlPPrtCursor', 'blue')
+call s:HL('CtrlPLinePre', 'dark2')
+
+call s:HL('CtrlPMode1', 'blue', 'dark2', 'bold')
+call s:HL('CtrlPMode2', 'dark0', 'blue', 'bold')
+call s:HL('CtrlPStats', 'light4', 'dark2', 'bold')
+
+" }}}
+" Startify: {{{
+
+call s:HL('StartifyBracket', 'light3')
+call s:HL('StartifyFile', 'light0')
+call s:HL('StartifyNumber', 'blue')
+call s:HL('StartifyPath', 'medium')
+call s:HL('StartifySlash', 'medium')
+call s:HL('StartifySection', 'yellow')
+call s:HL('StartifySpecial', 'dark2')
+call s:HL('StartifyHeader', 'orange')
+call s:HL('StartifyFooter', 'dark2')
+
+" }}}
+" Vimshell: {{{
+
+let g:vimshell_escape_colors = map(split(
+ \ 'dark4 red green yellow blue purple aqua light4 ' .
+ \ 'dark0 red green orange blue purple aqua light0'
+ \ ), '"#" . s:gb[v:val][0]')
+
+" }}}
+
+" Filetype specific -----------------------------------------------------------
+" Diff: {{{
+
+call s:HL('diffAdded', 'green')
+call s:HL('diffRemoved', 'red')
+call s:HL('diffChanged', 'aqua')
+
+call s:HL('diffFile', 'orange')
+call s:HL('diffNewFile', 'yellow')
+
+call s:HL('diffLine', 'blue')
+
+" }}}
+" Html: {{{
+
+call s:HL('htmlTag', 'blue')
+call s:HL('htmlEndTag', 'blue')
+
+call s:HL('htmlTagName', 'aqua', 'none', 'bold')
+call s:HL('htmlArg', 'aqua')
+
+call s:HL('htmlScriptTag', 'purple')
+call s:HL('htmlTagN', 'light1')
+call s:HL('htmlSpecialTagName', 'aqua', 'none', 'bold')
+
+call s:HL('htmlLink', 'light4', 'none', 'underline')
+
+call s:HL('htmlSpecialChar', 'orange')
+
+call s:HL('htmlBold', 'fg', 'bg', 'bold')
+call s:HL('htmlBoldUnderline', 'fg', 'bg', 'bold,underline')
+call s:HL('htmlBoldItalic', 'fg', 'bg', 'bold,italic')
+call s:HL('htmlBoldUnderlineItalic', 'fg', 'bg', 'bold,underline,italic')
+
+call s:HL('htmlUnderline', 'fg', 'bg', 'underline')
+call s:HL('htmlUnderlineItalic', 'fg', 'bg', 'underline,italic')
+call s:HL('htmlItalic', 'fg', 'bg', 'italic')
+
+" }}}
+" Xml: {{{
+
+call s:HL('xmlTag', 'blue')
+call s:HL('xmlEndTag', 'blue')
+call s:HL('xmlTagName', 'blue')
+call s:HL('xmlEqual', 'blue')
+call s:HL('docbkKeyword', 'aqua', 'none', 'bold')
+
+call s:HL('xmlDocTypeDecl', 'medium')
+call s:HL('xmlDocTypeKeyword', 'purple')
+call s:HL('xmlCdataStart', 'medium')
+call s:HL('xmlCdataCdata', 'purple')
+call s:HL('dtdFunction', 'medium')
+call s:HL('dtdTagName', 'purple')
+
+call s:HL('xmlAttrib', 'aqua')
+call s:HL('xmlProcessingDelim', 'medium')
+call s:HL('dtdParamEntityPunct', 'medium')
+call s:HL('dtdParamEntityDPunct', 'medium')
+call s:HL('xmlAttribPunct', 'medium')
+
+call s:HL('xmlEntity', 'orange')
+call s:HL('xmlEntityPunct', 'orange')
+" }}}
+" Vim: {{{
+
+if g:gruvbox_italicize_comments == 0
+ call s:HL('vimCommentTitle', 'light4_256', 'none', 'bold')
+else
+ call s:HL('vimCommentTitle', 'light4_256', 'none', 'bold,italic')
+endif
+call s:HL('vimNotation', 'orange')
+call s:HL('vimBracket', 'orange')
+call s:HL('vimMapModKey', 'orange')
+call s:HL('vimFuncSID', 'light3')
+call s:HL('vimSetSep', 'light3')
+call s:HL('vimSep', 'light3')
+call s:HL('vimContinue', 'light3')
+
+" }}}
+" Clojure: {{{
+
+call s:HL('clojureKeyword', 'blue')
+call s:HL('clojureCond', 'orange')
+call s:HL('clojureSpecial', 'orange')
+call s:HL('clojureDefine', 'orange')
+
+call s:HL('clojureFunc', 'yellow')
+call s:HL('clojureRepeat', 'yellow')
+call s:HL('clojureCharacter', 'aqua')
+call s:HL('clojureStringEscape', 'aqua')
+call s:HL('clojureException', 'red')
+
+call s:HL('clojureRegexp', 'aqua')
+call s:HL('clojureRegexpEscape', 'aqua')
+call s:HL('clojureRegexpCharClass', 'light3', 'none', 'bold')
+call s:HL('clojureRegexpMod', 'light3', 'none', 'bold')
+call s:HL('clojureRegexpQuantifier', 'light3', 'none', 'bold')
+
+call s:HL('clojureParen', 'light3')
+call s:HL('clojureAnonArg', 'yellow')
+call s:HL('clojureVariable', 'blue')
+call s:HL('clojureMacro', 'orange')
+
+call s:HL('clojureMeta', 'yellow')
+call s:HL('clojureDeref', 'yellow')
+call s:HL('clojureQuote', 'yellow')
+call s:HL('clojureUnquote', 'yellow')
+
+" }}}
+" C: {{{
+
+call s:HL('cOperator', 'purple')
+call s:HL('cStructure', 'orange')
+
+" }}}
+" Python: {{{
+
+call s:HL('pythonBuiltin', 'orange')
+call s:HL('pythonBuiltinObj', 'orange')
+call s:HL('pythonBuiltinFunc', 'orange')
+call s:HL('pythonFunction', 'aqua')
+call s:HL('pythonDecorator', 'red')
+call s:HL('pythonInclude', 'blue')
+call s:HL('pythonImport', 'blue')
+call s:HL('pythonRun', 'blue')
+call s:HL('pythonCoding', 'blue')
+call s:HL('pythonOperator', 'red')
+call s:HL('pythonExceptions', 'purple')
+call s:HL('pythonBoolean', 'purple')
+call s:HL('pythonDot', 'light3')
+
+" }}}
+" CSS: {{{
+
+call s:HL('cssBraces', 'blue')
+call s:HL('cssFunctionName', 'yellow')
+call s:HL('cssIdentifier', 'orange')
+call s:HL('cssClassName', 'green')
+call s:HL('cssColor', 'blue')
+call s:HL('cssSelectorOp', 'blue')
+call s:HL('cssSelectorOp2', 'blue')
+call s:HL('cssImportant', 'green')
+call s:HL('cssVendor', 'light1')
+
+call s:HL('cssTextProp', 'aqua')
+call s:HL('cssAnimationProp', 'aqua')
+call s:HL('cssUIProp', 'yellow')
+call s:HL('cssTransformProp', 'aqua')
+call s:HL('cssTransitionProp', 'aqua')
+call s:HL('cssPrintProp', 'aqua')
+call s:HL('cssPositioningProp', 'yellow')
+call s:HL('cssBoxProp', 'aqua')
+call s:HL('cssFontDescriptorProp', 'aqua')
+call s:HL('cssFlexibleBoxProp', 'aqua')
+call s:HL('cssBorderOutlineProp', 'aqua')
+call s:HL('cssBackgroundProp', 'aqua')
+call s:HL('cssMarginProp', 'aqua')
+call s:HL('cssListProp', 'aqua')
+call s:HL('cssTableProp', 'aqua')
+call s:HL('cssFontProp', 'aqua')
+call s:HL('cssPaddingProp', 'aqua')
+call s:HL('cssDimensionProp', 'aqua')
+call s:HL('cssRenderProp', 'aqua')
+call s:HL('cssColorProp', 'aqua')
+call s:HL('cssGeneratedContentProp', 'aqua')
+
+" }}}
+" JavaScript: {{{
+
+call s:HL('javaScriptBraces', 'orange')
+call s:HL('javaScriptFunction', 'aqua')
+call s:HL('javaScriptIdentifier', 'red')
+call s:HL('javaScriptMember', 'blue')
+call s:HL('javaScriptNumber', 'purple')
+call s:HL('javaScriptNull', 'purple')
+call s:HL('javaScriptParens', 'light3')
+
+" }}}
+" CoffeeScript: {{{
+
+call s:HL('coffeeExtendedOp', 'light3')
+call s:HL('coffeeSpecialOp', 'light3')
+call s:HL('coffeeCurly', 'orange')
+call s:HL('coffeeParen', 'light3')
+call s:HL('coffeeBracket', 'orange')
+
+" }}}
+" Ruby: {{{
+
+call s:HL('rubyStringDelimiter', 'green')
+call s:HL('rubyInterpolationDelimiter', 'aqua')
+
+" }}}
+" ObjectiveC: {{{
+
+call s:HL('objcTypeModifier', 'red')
+call s:HL('objcDirective', 'blue')
+
+" }}}
+" Go: {{{
+
+call s:HL('goDirective', 'aqua')
+call s:HL('goConstants', 'purple')
+call s:HL('goDeclaration', 'red')
+call s:HL('goDeclType', 'blue')
+call s:HL('goBuiltins', 'orange')
+
+" }}}
+" Lua: {{{
+
+call s:HL('luaIn', 'red')
+call s:HL('luaFunction', 'aqua')
+call s:HL('luaTable', 'orange')
+
+" }}}
+" MoonScript: {{{
+
+call s:HL('moonSpecialOp', 'light3')
+call s:HL('moonExtendedOp', 'light3')
+call s:HL('moonFunction', 'light3')
+call s:HL('moonObject', 'yellow')
+
+" }}}
+" Java: {{{
+
+call s:HL('javaAnnotation', 'blue')
+call s:HL('javaDocTags', 'aqua')
+hi! link javaCommentTitle vimCommentTitle
+call s:HL('javaParen', 'light3')
+call s:HL('javaParen1', 'light3')
+call s:HL('javaParen2', 'light3')
+call s:HL('javaParen3', 'light3')
+call s:HL('javaParen4', 'light3')
+call s:HL('javaParen5', 'light3')
+call s:HL('javaOperator', 'orange')
+
+call s:HL('javaVarArg', 'green')
+
+" }}}
+" Elixir: {{{
+
+hi! link elixirDocString Comment
+
+call s:HL('elixirStringDelimiter', 'green')
+call s:HL('elixirInterpolationDelimiter', 'aqua')
+
+" }}}
+" Scala: {{{
+
+" NB: scala vim syntax file is kinda horrible
+call s:HL('scalaNameDefinition', 'light1')
+call s:HL('scalaCaseFollowing', 'light1')
+call s:HL('scalaCapitalWord', 'light1')
+call s:HL('scalaTypeExtension', 'light1')
+
+call s:HL('scalaKeyword', 'red')
+call s:HL('scalaKeywordModifier', 'red')
+
+call s:HL('scalaSpecial', 'aqua')
+call s:HL('scalaOperator', 'light1')
+
+call s:HL('scalaTypeDeclaration', 'yellow')
+call s:HL('scalaTypeTypePostDeclaration', 'yellow')
+
+call s:HL('scalaInstanceDeclaration', 'light1')
+call s:HL('scalaInterpolation', 'aqua')
+
+" }}}
+
+" Functions -------------------------------------------------------------------
+" Search Highlighting Cursor {{{
+
+function! GruvboxHlsShowCursor()
+ call s:HL('Cursor', 'dark0', g:gruvbox_hls_cursor)
+ call s:HL('vCursor', 'dark0', g:gruvbox_hls_cursor)
+ call s:HL('iCursor', 'dark0', g:gruvbox_hls_cursor)
+ call s:HL('lCursor', 'dark0', g:gruvbox_hls_cursor)
+endfunction
+
+function! GruvboxHlsHideCursor()
+ call s:HL('Cursor', 'none', 'none', 'inverse')
+ call s:HL('vCursor', 'none', 'none', 'inverse')
+ call s:HL('iCursor', 'none', 'none', 'inverse')
+ call s:HL('lCursor', 'none', 'none', 'inverse')
+endfunction
+
+" }}}
+
+" vim: set sw=3 ts=3 sts=3 noet tw=80 ft=vim fdm=marker:
diff --git a/colors/hemisu.vim b/colors/hemisu.vim
new file mode 100644
index 0000000..e3c4043
--- /dev/null
+++ b/colors/hemisu.vim
@@ -0,0 +1,215 @@
+" hemisu.vim - Vim color scheme
+" ----------------------------------------------------------
+" Author: Noah Frederick (http://noahfrederick.com/)
+" Version: 3.4
+" License: Creative Commons Attribution-NonCommercial
+" 3.0 Unported License (see README.md)
+" ----------------------------------------------------------
+
+" Setup ----------------------------------------------------{{{
+" Reset syntax highlighting
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+
+" Declare theme name
+let g:colors_name = "hemisu"
+
+"}}}
+" The Colors -----------------------------------------------{{{
+" Define reusable colors
+let s:black = { "gui": "#000000", "cterm": "16" }
+let s:white = { "gui": "#FFFFFF", "cterm": "231" }
+let s:almostWhite = { "gui": "#EEEEEE", "cterm": "255" }
+let s:almostBlack = { "gui": "#111111", "cterm": "233" }
+let s:middleDarkGrey = { "gui": "#777777", "cterm": "241" }
+let s:middleLightGrey = { "gui": "#999999", "cterm": "246" }
+let s:lightGrey = { "gui": "#BBBBBB", "cterm": "249" }
+let s:darkGrey = { "gui": "#444444", "cterm": "238" }
+
+let s:darkPink = { "gui": "#63001C", "cterm": "88" }
+let s:middleDarkPink = { "gui": "#FF0055", "cterm": "197" }
+let s:middleLightPink = { "gui": "#D65E76", "cterm": "167" }
+let s:lightPink = { "gui": "#FFAFAF", "cterm": "217" }
+
+let s:darkBlue = { "gui": "#005F87", "cterm": "24" }
+let s:middleDarkBlue = { "gui": "#538192", "cterm": "24" }
+let s:middleLightBlue = { "gui": "#9FD3E6", "cterm": "116" }
+let s:lightBlue = { "gui": "#CBE4EE", "cterm": "195" }
+
+let s:darkGreen = { "gui": "#5F5F00", "cterm": "58" }
+let s:middleDarkGreen = { "gui": "#739200", "cterm": "64" }
+let s:middleLightGreen = { "gui": "#B1D631", "cterm": "149" }
+let s:lightGreen = { "gui": "#BBFFAA", "cterm": "157" }
+
+let s:darkTan = { "gui": "#503D15", "cterm": "52" }
+let s:lightTan = { "gui": "#ECE1C8", "cterm": "230" }
+
+" Assign to semantic categories based on background color
+if &background == "dark"
+ " Dark theme
+ let s:bg = s:black
+ let s:norm = s:almostWhite
+ let s:comment = s:middleDarkGrey
+ let s:dimmed = s:middleLightGrey
+ let s:subtle = s:darkGrey
+ let s:faint = s:almostBlack
+ let s:accent1 = s:middleLightBlue
+ let s:accent2 = s:middleLightGreen
+ let s:accent3 = s:lightGreen
+ let s:accent4 = s:lightTan
+ let s:normRed = s:middleLightPink
+ let s:normGreen = s:middleLightGreen
+ let s:normBlue = s:middleLightBlue
+ let s:faintRed = s:darkPink
+ let s:faintGreen = s:darkGreen
+ let s:faintBlue = s:darkBlue
+else
+ " Light theme
+ let s:bg = s:white
+ let s:norm = s:almostBlack
+ let s:comment = s:middleLightGrey
+ let s:dimmed = s:middleDarkGrey
+ let s:subtle = s:lightGrey
+ let s:faint = s:almostWhite
+ let s:accent1 = s:middleDarkBlue
+ let s:accent2 = s:middleDarkGreen
+ let s:accent3 = s:middleDarkPink
+ let s:accent4 = s:darkTan
+ let s:normRed = s:middleDarkPink
+ let s:normGreen = s:middleDarkGreen
+ let s:normBlue = s:middleDarkBlue
+ let s:faintRed = s:lightPink
+ let s:faintGreen = s:lightGreen
+ let s:faintBlue = s:lightBlue
+endif
+
+"}}}
+" Utility Function -----------------------------------------{{{
+function! s:h(group, style)
+ execute "highlight" a:group
+ \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE")
+ \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE")
+ \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE")
+ \ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE")
+ \ "ctermfg=" (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE")
+ \ "ctermbg=" (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE")
+ \ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE")
+endfunction
+
+"}}}
+" Highlights - Vim >= 7 ------------------------------------{{{
+if version >= 700
+ call s:h("CursorLine", { "bg": s:faint })
+ call s:h("MatchParen", { "fg": s:accent1, "bg": s:faint, "gui": "bold" })
+ call s:h("Pmenu", { "bg": s:faint })
+ call s:h("PmenuThumb", { "bg": s:norm })
+ call s:h("PmenuSBar", { "bg": s:subtle })
+ call s:h("PmenuSel", { "bg": s:faintBlue })
+ call s:h("ColorColumn", { "bg": s:faintRed })
+ call s:h("SpellBad", { "sp": s:normRed, "gui": "undercurl" })
+ call s:h("SpellCap", { "sp": s:accent1, "gui": "undercurl" })
+ call s:h("SpellRare", { "sp": s:normGreen, "gui": "undercurl" })
+ call s:h("SpellLocal", { "sp": s:accent4, "gui": "undercurl" })
+ hi! link CursorColumn CursorLine
+
+ " Use background for cterm Spell*, which does not support undercurl
+ execute "hi! SpellBad ctermbg=" s:faintRed.cterm
+ execute "hi! SpellCap ctermbg=" s:faintBlue.cterm
+ execute "hi! SpellRare ctermbg=" s:faintGreen.cterm
+ execute "hi! SpellLocal ctermbg=" s:faint.cterm
+endif
+
+"}}}
+" Highlights - UI ------------------------------------------{{{
+call s:h("Normal", { "fg": s:norm, "bg": s:bg })
+call s:h("NonText", { "fg": s:subtle })
+call s:h("Cursor", { "fg": s:bg, "bg": s:accent3 })
+call s:h("Visual", { "bg": s:faintBlue })
+call s:h("IncSearch", { "bg": s:faintBlue })
+call s:h("Search", { "bg": s:faintGreen })
+call s:h("StatusLine", { "fg": s:norm, "bg": s:faint, "gui": "bold", "cterm": "bold" })
+call s:h("StatusLineNC", { "fg": s:dimmed, "bg": s:faint })
+call s:h("SignColumn", { "fg": s:norm })
+call s:h("VertSplit", { "fg": s:subtle, "bg": s:faint })
+call s:h("TabLine", { "fg": s:dimmed, "bg": s:faint })
+call s:h("TabLineSel", { "gui": "bold", "cterm": "bold" })
+call s:h("Folded", { "fg": s:comment, "bg": s:faint })
+call s:h("Directory", { "fg": s:accent1 })
+call s:h("Title", { "fg": s:accent4, "gui": "bold", "cterm": "bold" })
+call s:h("ErrorMsg", { "bg": s:faintRed })
+call s:h("DiffAdd", { "bg": s:faintGreen })
+call s:h("DiffChange", { "bg": s:faintRed })
+call s:h("DiffDelete", { "fg": s:normRed, "bg": s:faintRed })
+call s:h("DiffText", { "bg": s:faintRed, "gui": "bold", "cterm": "bold" })
+call s:h("User1", { "fg": s:bg, "bg": s:normGreen })
+call s:h("User2", { "fg": s:bg, "bg": s:normRed })
+call s:h("User3", { "fg": s:bg, "bg": s:normBlue })
+hi! link WildMenu IncSearch
+hi! link FoldColumn SignColumn
+hi! link WarningMsg ErrorMsg
+hi! link MoreMsg Title
+hi! link Question MoreMsg
+hi! link ModeMsg MoreMsg
+hi! link TabLineFill StatusLineNC
+hi! link LineNr NonText
+hi! link SpecialKey NonText
+
+"}}}
+" Highlights - Generic Syntax ------------------------------{{{
+call s:h("Delimiter", { "fg": s:dimmed })
+call s:h("Comment", { "fg": s:comment, "gui": "italic" })
+call s:h("Underlined", { "fg": s:accent1, "gui": "underline", "cterm": "underline" })
+call s:h("Type", { "fg": s:accent3 })
+call s:h("String", { "fg": s:accent2 })
+call s:h("Keyword", { "fg": s:accent2, "gui": "bold", "cterm": "bold" })
+call s:h("Todo", { "fg": s:normRed, "gui": "bold", "cterm": "bold" })
+call s:h("Function", { "gui": "bold", "cterm": "bold" })
+hi! link Identifier Function
+hi! link Statement Type
+hi! link Constant Directory
+hi! link Number Constant
+hi! link Special Constant
+hi! link PreProc Constant
+hi! link Error ErrorMsg
+
+"}}}
+" Highlights - HTML ----------------------------------------{{{
+hi! link htmlLink Underlined
+hi! link htmlTag Type
+hi! link htmlEndTag htmlTag
+
+"}}}
+" Highlights - CSS -----------------------------------------{{{
+hi! link cssBraces Delimiter
+hi! link cssSelectorOp cssBraces
+hi! link cssClassName Normal
+
+"}}}
+" Highlights - Markdown ------------------------------------{{{
+hi! link mkdListItem mkdDelimiter
+
+"}}}
+" Highlights - Shell ---------------------------------------{{{
+hi! link shOperator Delimiter
+hi! link shCaseBar Delimiter
+
+"}}}
+" Highlights - JavaScript ----------------------------------{{{
+hi! link javaScriptValue Constant
+hi! link javaScriptNull Constant
+hi! link javaScriptBraces Normal
+
+"}}}
+" Highlights - Help ----------------------------------------{{{
+hi! link helpExample String
+hi! link helpHeadline Title
+hi! link helpSectionDelim Comment
+hi! link helpHyperTextEntry Statement
+hi! link helpHyperTextJump Underlined
+hi! link helpURL Underlined
+
+"}}}
+
+" vim: fdm=marker:sw=2:sts=2:et
diff --git a/colors/jellybeans.vim b/colors/jellybeans.vim
new file mode 100644
index 0000000..21e7dbe
--- /dev/null
+++ b/colors/jellybeans.vim
@@ -0,0 +1,551 @@
+" Vim color file
+"
+" " __ _ _ _ "
+" " \ \ ___| | |_ _| |__ ___ __ _ _ __ ___ "
+" " \ \/ _ \ | | | | | _ \ / _ \/ _ | _ \/ __| "
+" " /\_/ / __/ | | |_| | |_| | __/ |_| | | | \__ \ "
+" " \___/ \___|_|_|\__ |____/ \___|\____|_| |_|___/ "
+" " \___/ "
+"
+" "A colorful, dark color scheme for Vim."
+"
+" File: jellybeans.vim
+" URL: github.com/nanotech/jellybeans.vim
+" Scripts URL: vim.org/scripts/script.php?script_id=2555
+" Maintainer: NanoTech (nanotech.nanotechcorp.net)
+" Version: 1.6~git
+" Last Change: January 15th, 2012
+" License: MIT
+" Contributors: Daniel Herbert (pocketninja)
+" Henry So, Jr. <henryso@panix.com>
+" David Liang <bmdavll at gmail dot com>
+" Rich Healey (richo)
+" Andrew Wong (w0ng)
+"
+" Copyright (c) 2009-2012 NanoTech
+"
+" Permission is hereby granted, free of charge, to any per‐
+" son obtaining a copy of this software and associated doc‐
+" umentation files (the “Software”), to deal in the Soft‐
+" ware without restriction, including without limitation
+" the rights to use, copy, modify, merge, publish, distrib‐
+" ute, 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 PARTICU‐
+" LAR 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 CON‐
+" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐
+" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+" THE SOFTWARE.
+
+set background=dark
+
+hi clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+let colors_name = "jellybeans"
+
+if has("gui_running") || &t_Co == 88 || &t_Co == 256
+ let s:low_color = 0
+else
+ let s:low_color = 1
+endif
+
+" Color approximation functions by Henry So, Jr. and David Liang {{{
+" Added to jellybeans.vim by Daniel Herbert
+
+" returns an approximate grey index for the given grey level
+fun! s:grey_number(x)
+ if &t_Co == 88
+ if a:x < 23
+ return 0
+ elseif a:x < 69
+ return 1
+ elseif a:x < 103
+ return 2
+ elseif a:x < 127
+ return 3
+ elseif a:x < 150
+ return 4
+ elseif a:x < 173
+ return 5
+ elseif a:x < 196
+ return 6
+ elseif a:x < 219
+ return 7
+ elseif a:x < 243
+ return 8
+ else
+ return 9
+ endif
+ else
+ if a:x < 14
+ return 0
+ else
+ let l:n = (a:x - 8) / 10
+ let l:m = (a:x - 8) % 10
+ if l:m < 5
+ return l:n
+ else
+ return l:n + 1
+ endif
+ endif
+ endif
+endfun
+
+" returns the actual grey level represented by the grey index
+fun! s:grey_level(n)
+ if &t_Co == 88
+ if a:n == 0
+ return 0
+ elseif a:n == 1
+ return 46
+ elseif a:n == 2
+ return 92
+ elseif a:n == 3
+ return 115
+ elseif a:n == 4
+ return 139
+ elseif a:n == 5
+ return 162
+ elseif a:n == 6
+ return 185
+ elseif a:n == 7
+ return 208
+ elseif a:n == 8
+ return 231
+ else
+ return 255
+ endif
+ else
+ if a:n == 0
+ return 0
+ else
+ return 8 + (a:n * 10)
+ endif
+ endif
+endfun
+
+" returns the palette index for the given grey index
+fun! s:grey_color(n)
+ if &t_Co == 88
+ if a:n == 0
+ return 16
+ elseif a:n == 9
+ return 79
+ else
+ return 79 + a:n
+ endif
+ else
+ if a:n == 0
+ return 16
+ elseif a:n == 25
+ return 231
+ else
+ return 231 + a:n
+ endif
+ endif
+endfun
+
+" returns an approximate color index for the given color level
+fun! s:rgb_number(x)
+ if &t_Co == 88
+ if a:x < 69
+ return 0
+ elseif a:x < 172
+ return 1
+ elseif a:x < 230
+ return 2
+ else
+ return 3
+ endif
+ else
+ if a:x < 75
+ return 0
+ else
+ let l:n = (a:x - 55) / 40
+ let l:m = (a:x - 55) % 40
+ if l:m < 20
+ return l:n
+ else
+ return l:n + 1
+ endif
+ endif
+ endif
+endfun
+
+" returns the actual color level for the given color index
+fun! s:rgb_level(n)
+ if &t_Co == 88
+ if a:n == 0
+ return 0
+ elseif a:n == 1
+ return 139
+ elseif a:n == 2
+ return 205
+ else
+ return 255
+ endif
+ else
+ if a:n == 0
+ return 0
+ else
+ return 55 + (a:n * 40)
+ endif
+ endif
+endfun
+
+" returns the palette index for the given R/G/B color indices
+fun! s:rgb_color(x, y, z)
+ if &t_Co == 88
+ return 16 + (a:x * 16) + (a:y * 4) + a:z
+ else
+ return 16 + (a:x * 36) + (a:y * 6) + a:z
+ endif
+endfun
+
+" returns the palette index to approximate the given R/G/B color levels
+fun! s:color(r, g, b)
+ " get the closest grey
+ let l:gx = s:grey_number(a:r)
+ let l:gy = s:grey_number(a:g)
+ let l:gz = s:grey_number(a:b)
+
+ " get the closest color
+ let l:x = s:rgb_number(a:r)
+ let l:y = s:rgb_number(a:g)
+ let l:z = s:rgb_number(a:b)
+
+ if l:gx == l:gy && l:gy == l:gz
+ " there are two possibilities
+ let l:dgr = s:grey_level(l:gx) - a:r
+ let l:dgg = s:grey_level(l:gy) - a:g
+ let l:dgb = s:grey_level(l:gz) - a:b
+ let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
+ let l:dr = s:rgb_level(l:gx) - a:r
+ let l:dg = s:rgb_level(l:gy) - a:g
+ let l:db = s:rgb_level(l:gz) - a:b
+ let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
+ if l:dgrey < l:drgb
+ " use the grey
+ return s:grey_color(l:gx)
+ else
+ " use the color
+ return s:rgb_color(l:x, l:y, l:z)
+ endif
+ else
+ " only one possibility
+ return s:rgb_color(l:x, l:y, l:z)
+ endif
+endfun
+
+" returns the palette index to approximate the 'rrggbb' hex string
+fun! s:rgb(rgb)
+ let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
+ let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
+ let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
+ return s:color(l:r, l:g, l:b)
+endfun
+
+" sets the highlighting for the given group
+fun! s:X(group, fg, bg, attr, lcfg, lcbg)
+ if s:low_color
+ let l:fge = empty(a:lcfg)
+ let l:bge = empty(a:lcbg)
+
+ if !l:fge && !l:bge
+ exec "hi ".a:group." ctermfg=".a:lcfg." ctermbg=".a:lcbg
+ elseif !l:fge && l:bge
+ exec "hi ".a:group." ctermfg=".a:lcfg." ctermbg=NONE"
+ elseif l:fge && !l:bge
+ exec "hi ".a:group." ctermfg=NONE ctermbg=".a:lcbg
+ endif
+ else
+ let l:fge = empty(a:fg)
+ let l:bge = empty(a:bg)
+
+ if !l:fge && !l:bge
+ exec "hi ".a:group." guifg=#".a:fg." guibg=#".a:bg." ctermfg=".s:rgb(a:fg)." ctermbg=".s:rgb(a:bg)
+ elseif !l:fge && l:bge
+ exec "hi ".a:group." guifg=#".a:fg." guibg=NONE ctermfg=".s:rgb(a:fg)." ctermbg=NONE"
+ elseif l:fge && !l:bge
+ exec "hi ".a:group." guifg=NONE guibg=#".a:bg." ctermfg=NONE ctermbg=".s:rgb(a:bg)
+ endif
+ endif
+
+ if a:attr == ""
+ exec "hi ".a:group." gui=none cterm=none"
+ else
+ let l:noitalic = join(filter(split(a:attr, ","), "v:val !=? 'italic'"), ",")
+ if empty(l:noitalic)
+ let l:noitalic = "none"
+ endif
+ exec "hi ".a:group." gui=".a:attr." cterm=".l:noitalic
+ endif
+endfun
+" }}}
+
+if !exists("g:jellybeans_background_color")
+ let g:jellybeans_background_color = "151515"
+end
+
+call s:X("Normal","e8e8d3",g:jellybeans_background_color,"","White","")
+set background=dark
+
+if !exists("g:jellybeans_use_lowcolor_black") || g:jellybeans_use_lowcolor_black
+ let s:termBlack = "Black"
+else
+ let s:termBlack = "Grey"
+endif
+
+if version >= 700
+ call s:X("CursorLine","","1c1c1c","","",s:termBlack)
+ call s:X("CursorColumn","","1c1c1c","","",s:termBlack)
+ call s:X("MatchParen","ffffff","556779","bold","","DarkCyan")
+
+ call s:X("TabLine","000000","b0b8c0","italic","",s:termBlack)
+ call s:X("TabLineFill","9098a0","","","",s:termBlack)
+ call s:X("TabLineSel","000000","f0f0f0","italic,bold",s:termBlack,"White")
+
+ " Auto-completion
+ call s:X("Pmenu","ffffff","606060","","White",s:termBlack)
+ call s:X("PmenuSel","101010","eeeeee","",s:termBlack,"White")
+endif
+
+call s:X("Visual","","404040","","",s:termBlack)
+call s:X("Cursor",g:jellybeans_background_color,"b0d0f0","","","")
+
+call s:X("LineNr","605958",g:jellybeans_background_color,"none",s:termBlack,"")
+call s:X("CursorLineNr","ccc5c4","","none","White","")
+call s:X("Comment","888888","","italic","Grey","")
+call s:X("Todo","c7c7c7","","bold","White",s:termBlack)
+
+call s:X("StatusLine","000000","dddddd","italic","","White")
+call s:X("StatusLineNC","ffffff","403c41","italic","White","Black")
+call s:X("VertSplit","777777","403c41","",s:termBlack,s:termBlack)
+call s:X("WildMenu","f0a0c0","302028","","Magenta","")
+
+call s:X("Folded","a0a8b0","384048","italic",s:termBlack,"")
+call s:X("FoldColumn","535D66","1f1f1f","","",s:termBlack)
+call s:X("SignColumn","777777","333333","","",s:termBlack)
+call s:X("ColorColumn","","000000","","",s:termBlack)
+
+call s:X("Title","70b950","","bold","Green","")
+
+call s:X("Constant","cf6a4c","","","Red","")
+call s:X("Special","799d6a","","","Green","")
+call s:X("Delimiter","668799","","","Grey","")
+
+call s:X("String","99ad6a","","","Green","")
+call s:X("StringDelimiter","556633","","","DarkGreen","")
+
+call s:X("Identifier","c6b6ee","","","LightCyan","")
+call s:X("Structure","8fbfdc","","","LightCyan","")
+call s:X("Function","fad07a","","","Yellow","")
+call s:X("Statement","8197bf","","","DarkBlue","")
+call s:X("PreProc","8fbfdc","","","LightBlue","")
+
+hi! link Operator Structure
+
+call s:X("Type","ffb964","","","Yellow","")
+call s:X("NonText","606060",g:jellybeans_background_color,"",s:termBlack,"")
+
+call s:X("SpecialKey","444444","1c1c1c","",s:termBlack,"")
+
+call s:X("Search","f0a0c0","302028","underline","Magenta","")
+
+call s:X("Directory","dad085","","","Yellow","")
+call s:X("ErrorMsg","","902020","","","DarkRed")
+hi! link Error ErrorMsg
+hi! link MoreMsg Special
+call s:X("Question","65C254","","","Green","")
+
+
+" Spell Checking
+
+call s:X("SpellBad","","902020","underline","","DarkRed")
+call s:X("SpellCap","","0000df","underline","","Blue")
+call s:X("SpellRare","","540063","underline","","DarkMagenta")
+call s:X("SpellLocal","","2D7067","underline","","Green")
+
+" Diff
+
+hi! link diffRemoved Constant
+hi! link diffAdded String
+
+" VimDiff
+
+call s:X("DiffAdd","D2EBBE","437019","","White","DarkGreen")
+call s:X("DiffDelete","40000A","700009","","DarkRed","DarkRed")
+call s:X("DiffChange","","2B5B77","","White","DarkBlue")
+call s:X("DiffText","8fbfdc","000000","reverse","Yellow","")
+
+" PHP
+
+hi! link phpFunctions Function
+call s:X("StorageClass","c59f6f","","","Red","")
+hi! link phpSuperglobal Identifier
+hi! link phpQuoteSingle StringDelimiter
+hi! link phpQuoteDouble StringDelimiter
+hi! link phpBoolean Constant
+hi! link phpNull Constant
+hi! link phpArrayPair Operator
+hi! link phpOperator Normal
+hi! link phpRelation Normal
+hi! link phpVarSelector Identifier
+
+" Python
+
+hi! link pythonOperator Statement
+
+" Ruby
+
+hi! link rubySharpBang Comment
+call s:X("rubyClass","447799","","","DarkBlue","")
+call s:X("rubyIdentifier","c6b6fe","","","Cyan","")
+hi! link rubyConstant Type
+hi! link rubyFunction Function
+
+call s:X("rubyInstanceVariable","c6b6fe","","","Cyan","")
+call s:X("rubySymbol","7697d6","","","Blue","")
+hi! link rubyGlobalVariable rubyInstanceVariable
+hi! link rubyModule rubyClass
+call s:X("rubyControl","7597c6","","","Blue","")
+
+hi! link rubyString String
+hi! link rubyStringDelimiter StringDelimiter
+hi! link rubyInterpolationDelimiter Identifier
+
+call s:X("rubyRegexpDelimiter","540063","","","Magenta","")
+call s:X("rubyRegexp","dd0093","","","DarkMagenta","")
+call s:X("rubyRegexpSpecial","a40073","","","Magenta","")
+
+call s:X("rubyPredefinedIdentifier","de5577","","","Red","")
+
+" Erlang
+
+hi! link erlangAtom rubySymbol
+hi! link erlangBIF rubyPredefinedIdentifier
+hi! link erlangFunction rubyPredefinedIdentifier
+hi! link erlangDirective Statement
+hi! link erlangNode Identifier
+
+" JavaScript
+
+hi! link javaScriptValue Constant
+hi! link javaScriptRegexpString rubyRegexp
+
+" CoffeeScript
+
+hi! link coffeeRegExp javaScriptRegexpString
+
+" Lua
+
+hi! link luaOperator Conditional
+
+" C
+
+hi! link cFormat Identifier
+hi! link cOperator Constant
+
+" Objective-C/Cocoa
+
+hi! link objcClass Type
+hi! link cocoaClass objcClass
+hi! link objcSubclass objcClass
+hi! link objcSuperclass objcClass
+hi! link objcDirective rubyClass
+hi! link objcStatement Constant
+hi! link cocoaFunction Function
+hi! link objcMethodName Identifier
+hi! link objcMethodArg Normal
+hi! link objcMessageName Identifier
+
+" Vimscript
+
+hi! link vimOper Normal
+
+" Debugger.vim
+
+call s:X("DbgCurrent","DEEBFE","345FA8","","White","DarkBlue")
+call s:X("DbgBreakPt","","4F0037","","","DarkMagenta")
+
+" vim-indent-guides
+
+if !exists("g:indent_guides_auto_colors")
+ let g:indent_guides_auto_colors = 0
+endif
+call s:X("IndentGuidesOdd","","232323","","","")
+call s:X("IndentGuidesEven","","1b1b1b","","","")
+
+" Plugins, etc.
+
+hi! link TagListFileName Directory
+call s:X("PreciseJumpTarget","B9ED67","405026","","White","Green")
+
+if !exists("g:jellybeans_background_color_256")
+ let g:jellybeans_background_color_256=233
+end
+" Manual overrides for 256-color terminals. Dark colors auto-map badly.
+if !s:low_color
+ hi StatusLineNC ctermbg=235
+ hi Folded ctermbg=236
+ hi FoldColumn ctermbg=234
+ hi SignColumn ctermbg=236
+ hi CursorColumn ctermbg=234
+ hi CursorLine ctermbg=234
+ hi SpecialKey ctermbg=234
+ exec "hi NonText ctermbg=".g:jellybeans_background_color_256
+ exec "hi LineNr ctermbg=".g:jellybeans_background_color_256
+ hi DiffText ctermfg=81
+ exec "hi Normal ctermbg=".g:jellybeans_background_color_256
+ hi DbgBreakPt ctermbg=53
+ hi IndentGuidesOdd ctermbg=235
+ hi IndentGuidesEven ctermbg=234
+endif
+
+if exists("g:jellybeans_overrides")
+ fun! s:load_colors(defs)
+ for [l:group, l:v] in items(a:defs)
+ call s:X(l:group, get(l:v, 'guifg', ''), get(l:v, 'guibg', ''),
+ \ get(l:v, 'attr', ''),
+ \ get(l:v, 'ctermfg', ''), get(l:v, 'ctermbg', ''))
+ if !s:low_color
+ for l:prop in ['ctermfg', 'ctermbg']
+ let l:override_key = '256'.l:prop
+ if has_key(l:v, l:override_key)
+ exec "hi ".l:group." ".l:prop."=".l:v[l:override_key]
+ endif
+ endfor
+ endif
+ unlet l:group
+ unlet l:v
+ endfor
+ endfun
+ call s:load_colors(g:jellybeans_overrides)
+ delf s:load_colors
+endif
+
+" delete functions {{{
+delf s:X
+delf s:rgb
+delf s:color
+delf s:rgb_color
+delf s:rgb_level
+delf s:rgb_number
+delf s:grey_color
+delf s:grey_level
+delf s:grey_number
+" }}}
diff --git a/colors/molokai.vim b/colors/molokai.vim
new file mode 100644
index 0000000..6d97053
--- /dev/null
+++ b/colors/molokai.vim
@@ -0,0 +1,276 @@
+" Vim color file
+"
+" Author: Tomas Restrepo <tomas@winterdom.com>
+" https://github.com/tomasr/molokai
+"
+" Note: Based on the Monokai theme for TextMate
+" by Wimer Hazenberg and its darker variant
+" by Hamish Stuart Macpherson
+"
+
+hi clear
+
+if version > 580
+ " no guarantees for version 5.8 and below, but this makes it stop
+ " complaining
+ hi clear
+ if exists("syntax_on")
+ syntax reset
+ endif
+endif
+let g:colors_name="molokai"
+
+if exists("g:molokai_original")
+ let s:molokai_original = g:molokai_original
+else
+ let s:molokai_original = 0
+endif
+
+
+hi Boolean guifg=#AE81FF
+hi Character guifg=#E6DB74
+hi Number guifg=#AE81FF
+hi String guifg=#E6DB74
+hi Conditional guifg=#F92672 gui=bold
+hi Constant guifg=#AE81FF gui=bold
+hi Cursor guifg=#000000 guibg=#F8F8F0
+hi iCursor guifg=#000000 guibg=#F8F8F0
+hi Debug guifg=#BCA3A3 gui=bold
+hi Define guifg=#66D9EF
+hi Delimiter guifg=#8F8F8F
+hi DiffAdd guibg=#13354A
+hi DiffChange guifg=#89807D guibg=#4C4745
+hi DiffDelete guifg=#960050 guibg=#1E0010
+hi DiffText guibg=#4C4745 gui=italic,bold
+
+hi Directory guifg=#A6E22E gui=bold
+hi Error guifg=#E6DB74 guibg=#1E0010
+hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold
+hi Exception guifg=#A6E22E gui=bold
+hi Float guifg=#AE81FF
+hi FoldColumn guifg=#465457 guibg=#000000
+hi Folded guifg=#465457 guibg=#000000
+hi Function guifg=#A6E22E
+hi Identifier guifg=#FD971F
+hi Ignore guifg=#808080 guibg=bg
+hi IncSearch guifg=#C4BE89 guibg=#000000
+
+hi Keyword guifg=#F92672 gui=bold
+hi Label guifg=#E6DB74 gui=none
+hi Macro guifg=#C4BE89 gui=italic
+hi SpecialKey guifg=#66D9EF gui=italic
+
+hi MatchParen guifg=#000000 guibg=#FD971F gui=bold
+hi ModeMsg guifg=#E6DB74
+hi MoreMsg guifg=#E6DB74
+hi Operator guifg=#F92672
+
+" complete menu
+hi Pmenu guifg=#66D9EF guibg=#000000
+hi PmenuSel guibg=#808080
+hi PmenuSbar guibg=#080808
+hi PmenuThumb guifg=#66D9EF
+
+hi PreCondit guifg=#A6E22E gui=bold
+hi PreProc guifg=#A6E22E
+hi Question guifg=#66D9EF
+hi Repeat guifg=#F92672 gui=bold
+hi Search guifg=#000000 guibg=#FFE792
+" marks
+hi SignColumn guifg=#A6E22E guibg=#232526
+hi SpecialChar guifg=#F92672 gui=bold
+hi SpecialComment guifg=#7E8E91 gui=bold
+hi Special guifg=#66D9EF guibg=bg gui=italic
+if has("spell")
+ hi SpellBad guisp=#FF0000 gui=undercurl
+ hi SpellCap guisp=#7070F0 gui=undercurl
+ hi SpellLocal guisp=#70F0F0 gui=undercurl
+ hi SpellRare guisp=#FFFFFF gui=undercurl
+endif
+hi Statement guifg=#F92672 gui=bold
+hi StatusLine guifg=#455354 guibg=fg
+hi StatusLineNC guifg=#808080 guibg=#080808
+hi StorageClass guifg=#FD971F gui=italic
+hi Structure guifg=#66D9EF
+hi Tag guifg=#F92672 gui=italic
+hi Title guifg=#ef5939
+hi Todo guifg=#FFFFFF guibg=bg gui=bold
+
+hi Typedef guifg=#66D9EF
+hi Type guifg=#66D9EF gui=none
+hi Underlined guifg=#808080 gui=underline
+
+hi VertSplit guifg=#808080 guibg=#080808 gui=bold
+hi VisualNOS guibg=#403D3D
+hi Visual guibg=#403D3D
+hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold
+hi WildMenu guifg=#66D9EF guibg=#000000
+
+hi TabLineFill guifg=#1B1D1E guibg=#1B1D1E
+hi TabLine guibg=#1B1D1E guifg=#808080 gui=none
+
+if s:molokai_original == 1
+ hi Normal guifg=#F8F8F2 guibg=#272822
+ hi Comment guifg=#75715E
+ hi CursorLine guibg=#3E3D32
+ hi CursorLineNr guifg=#FD971F gui=none
+ hi CursorColumn guibg=#3E3D32
+ hi ColorColumn guibg=#3B3A32
+ hi LineNr guifg=#BCBCBC guibg=#3B3A32
+ hi NonText guifg=#75715E
+ hi SpecialKey guifg=#75715E
+else
+ hi Normal guifg=#F8F8F2 guibg=#1B1D1E
+ hi Comment guifg=#7E8E91
+ hi CursorLine guibg=#293739
+ hi CursorLineNr guifg=#FD971F gui=none
+ hi CursorColumn guibg=#293739
+ hi ColorColumn guibg=#232526
+ hi LineNr guifg=#465457 guibg=#232526
+ hi NonText guifg=#465457
+ hi SpecialKey guifg=#465457
+end
+
+"
+" Support for 256-color terminal
+"
+if &t_Co > 255
+ if s:molokai_original == 1
+ hi Normal ctermbg=234
+ hi CursorLine ctermbg=235 cterm=none
+ hi CursorLineNr ctermfg=208 cterm=none
+ else
+ hi Normal ctermfg=252 ctermbg=233
+ hi CursorLine ctermbg=234 cterm=none
+ hi CursorLineNr ctermfg=208 cterm=none
+ endif
+ hi Boolean ctermfg=135
+ hi Character ctermfg=144
+ hi Number ctermfg=135
+ hi String ctermfg=144
+ hi Conditional ctermfg=161 cterm=bold
+ hi Constant ctermfg=135 cterm=bold
+ hi Cursor ctermfg=16 ctermbg=253
+ hi Debug ctermfg=225 cterm=bold
+ hi Define ctermfg=81
+ hi Delimiter ctermfg=241
+
+ hi DiffAdd ctermbg=24
+ hi DiffChange ctermfg=181 ctermbg=239
+ hi DiffDelete ctermfg=162 ctermbg=53
+ hi DiffText ctermbg=102 cterm=bold
+
+ hi Directory ctermfg=118 cterm=bold
+ hi Error ctermfg=219 ctermbg=89
+ hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold
+ hi Exception ctermfg=118 cterm=bold
+ hi Float ctermfg=135
+ hi FoldColumn ctermfg=67 ctermbg=16
+ hi Folded ctermfg=67 ctermbg=16
+ hi Function ctermfg=118
+ hi Identifier ctermfg=208 cterm=none
+ hi Ignore ctermfg=244 ctermbg=232
+ hi IncSearch ctermfg=193 ctermbg=16
+
+ hi keyword ctermfg=161 cterm=bold
+ hi Label ctermfg=229 cterm=none
+ hi Macro ctermfg=193
+ hi SpecialKey ctermfg=81
+
+ hi MatchParen ctermfg=233 ctermbg=208 cterm=bold
+ hi ModeMsg ctermfg=229
+ hi MoreMsg ctermfg=229
+ hi Operator ctermfg=161
+
+ " complete menu
+ hi Pmenu ctermfg=81 ctermbg=16
+ hi PmenuSel ctermfg=255 ctermbg=242
+ hi PmenuSbar ctermbg=232
+ hi PmenuThumb ctermfg=81
+
+ hi PreCondit ctermfg=118 cterm=bold
+ hi PreProc ctermfg=118
+ hi Question ctermfg=81
+ hi Repeat ctermfg=161 cterm=bold
+ hi Search ctermfg=0 ctermbg=222 cterm=NONE
+
+ " marks column
+ hi SignColumn ctermfg=118 ctermbg=235
+ hi SpecialChar ctermfg=161 cterm=bold
+ hi SpecialComment ctermfg=245 cterm=bold
+ hi Special ctermfg=81
+ if has("spell")
+ hi SpellBad ctermbg=52
+ hi SpellCap ctermbg=17
+ hi SpellLocal ctermbg=17
+ hi SpellRare ctermfg=none ctermbg=none cterm=reverse
+ endif
+ hi Statement ctermfg=161 cterm=bold
+ hi StatusLine ctermfg=238 ctermbg=253
+ hi StatusLineNC ctermfg=244 ctermbg=232
+ hi StorageClass ctermfg=208
+ hi Structure ctermfg=81
+ hi Tag ctermfg=161
+ hi Title ctermfg=166
+ hi Todo ctermfg=231 ctermbg=232 cterm=bold
+
+ hi Typedef ctermfg=81
+ hi Type ctermfg=81 cterm=none
+ hi Underlined ctermfg=244 cterm=underline
+
+ hi VertSplit ctermfg=244 ctermbg=232 cterm=bold
+ hi VisualNOS ctermbg=238
+ hi Visual ctermbg=235
+ hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold
+ hi WildMenu ctermfg=81 ctermbg=16
+
+ hi Comment ctermfg=59
+ hi CursorColumn ctermbg=236
+ hi ColorColumn ctermbg=236
+ hi LineNr ctermfg=250 ctermbg=236
+ hi NonText ctermfg=59
+
+ hi SpecialKey ctermfg=59
+
+ if exists("g:rehash256") && g:rehash256 == 1
+ hi Normal ctermfg=252 ctermbg=234
+ hi CursorLine ctermbg=236 cterm=none
+ hi CursorLineNr ctermfg=208 cterm=none
+
+ hi Boolean ctermfg=141
+ hi Character ctermfg=222
+ hi Number ctermfg=141
+ hi String ctermfg=222
+ hi Conditional ctermfg=197 cterm=bold
+ hi Constant ctermfg=141 cterm=bold
+
+ hi DiffDelete ctermfg=125 ctermbg=233
+
+ hi Directory ctermfg=154 cterm=bold
+ hi Error ctermfg=222 ctermbg=233
+ hi Exception ctermfg=154 cterm=bold
+ hi Float ctermfg=141
+ hi Function ctermfg=154
+ hi Identifier ctermfg=208
+
+ hi Keyword ctermfg=197 cterm=bold
+ hi Operator ctermfg=197
+ hi PreCondit ctermfg=154 cterm=bold
+ hi PreProc ctermfg=154
+ hi Repeat ctermfg=197 cterm=bold
+
+ hi Statement ctermfg=197 cterm=bold
+ hi Tag ctermfg=197
+ hi Title ctermfg=203
+ hi Visual ctermbg=238
+
+ hi Comment ctermfg=244
+ hi LineNr ctermfg=239 ctermbg=235
+ hi NonText ctermfg=239
+ hi SpecialKey ctermfg=239
+ endif
+end
+
+" Must be at the end, because of ctermbg=234 bug.
+" https://groups.google.com/forum/#!msg/vim_dev/afPqwAFNdrU/nqh6tOM87QUJ
+set background=dark
diff --git a/colors/seoul256.vim b/colors/seoul256.vim
new file mode 100644
index 0000000..170caa2
--- /dev/null
+++ b/colors/seoul256.vim
@@ -0,0 +1,341 @@
+" " _____ _ ___ ___ ___ "
+" " | __|___ ___ _ _| |_ | _| _| "
+" " |__ | -_| . | | | | _|_ | . | "
+" " |_____|___|___|___|_|___|___|___|.vim "
+"
+" " Low-contrast dark Vim color scheme using Seoul Colors "
+"
+" File: seoul256.vim
+" URL: github.com/junegunn/seoul256.vim
+" Author: Junegunn Choi (junegunn.c@gmail.com)
+" Version: 1.5.3
+" Last Updated: Aug 4, 2014
+" License: MIT
+"
+" Copyright (c) 2013 Junegunn Choi
+"
+" MIT License
+"
+" 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.
+
+if !exists('s:rgb_map')
+ let s:rgb_map =
+ \{ 22: '#006F00', 23: '#007173', 24: '#007299', 25: '#0074BE', 30: '#009799',
+ \ 31: '#0099BD', 38: '#00BDDF', 52: '#730B00', 58: '#727100', 59: '#727272',
+ \ 65: '#719872', 66: '#719899', 67: '#7299BC', 68: '#719CDF', 73: '#6FBCBD',
+ \ 74: '#70BDDF', 88: '#9B1300', 89: '#9B1D72', 94: '#9A7200', 95: '#9A7372',
+ \ 96: '#9A7599', 101: '#999872', 103: '#999ABD', 108: '#98BC99', 109: '#98BCBD',
+ \ 110: '#98BEDE', 116: '#97DDDF', 125: '#BF2172', 131: '#BE7572', 137: '#BE9873',
+ \ 143: '#BDBB72', 144: '#BDBC98', 145: '#BDBDBD', 151: '#BCDDBD', 152: '#BCDEDE',
+ \ 153: '#BCE0FF', 161: '#E12672', 168: '#E17899', 173: '#E19972', 174: '#E09B99',
+ \ 179: '#DFBC72', 181: '#E0BEBC', 184: '#DEDC00', 186: '#DEDD99', 187: '#DFDEBD',
+ \ 189: '#DFDFFF', 216: '#FFBD98', 217: '#FFBFBD', 218: '#FFC0DE', 220: '#FFDD00',
+ \ 222: '#FFDE99', 224: '#FFDFDF', 230: '#FFFFDF', 231: '#FFFFFF', 232: '#060606',
+ \ 233: '#171717', 234: '#252525', 235: '#333233', 236: '#3F3F3F', 237: '#4B4B4B',
+ \ 238: '#565656', 239: '#616161', 240: '#6B6B6B', 241: '#757575', 249: '#BFBFBF',
+ \ 250: '#C8C8C8', 251: '#D1D0D1', 252: '#D9D9D9', 253: '#E1E1E1', 254: '#E9E9E9',
+ \ 255: '#F1F1F1' }
+endif
+
+let s:background = &background
+let s:colors_name = get(g:, 'colors_name', '')
+
+silent! unlet s:style s:seoul256_background
+
+" 1. If g:seoul256_background is found
+if exists('g:seoul256_background')
+ let s:seoul256_background = g:seoul256_background
+ if s:seoul256_background >= 233 && s:seoul256_background <= 239
+ let s:style = 'dark'
+ elseif s:seoul256_background >= 252 && s:seoul256_background <= 256
+ let s:style = 'light'
+ else
+ unlet s:seoul256_background
+ endif
+endif
+
+if !exists('s:style')
+ " 2. If g:colors_name is NOT 'seoul256' -> dark version
+ if s:colors_name != 'seoul256'
+ let s:style = 'dark'
+ " 3. Follow &background setting
+ else
+ let s:style = &background
+ endif
+endif
+let s:style_idx = s:style == 'light'
+
+" Background colors
+if s:style == 'dark'
+ let s:dark_bg = get(s:, 'seoul256_background', 237)
+ let s:light_bg = 253
+else
+ let s:dark_bg = 237
+ let s:light_bg = get(s:, 'seoul256_background', 253)
+endif
+let s:dark_bg_2 = s:dark_bg > 233 ? s:dark_bg - 2 : 16
+let s:light_bg_1 = min([s:light_bg + 1, 256])
+let s:light_bg_2 = min([s:light_bg + 2, 256])
+
+" Foreground colors
+let s:dark_fg = 252
+let s:light_fg = 239
+
+function! s:hi(item, fg, bg)
+ let fg = a:fg[s:style_idx] > 255 ? 231 : a:fg[s:style_idx]
+ let bg = a:bg[s:style_idx] > 255 ? 231 : a:bg[s:style_idx]
+
+ if !empty(fg)
+ execute printf("highlight %s ctermfg=%s guifg=%s", a:item, fg, get(s:rgb_map, fg, 'NONE'))
+ endif
+ if !empty(bg)
+ execute printf("highlight %s ctermbg=%s guibg=%s", a:item, bg, get(s:rgb_map, bg, 'NONE'))
+ endif
+endfunction
+
+let s:gui = has('gui_running')
+if !s:gui
+ set t_Co=256
+end
+
+silent! unlet g:colors_name
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+
+call s:hi('Normal', [s:dark_fg, s:light_fg], [s:dark_bg, s:light_bg])
+
+call s:hi('LineNr', [101, 101], [s:dark_bg + 1, s:light_bg - 2])
+call s:hi('Visual', ['', ''], [23, 152])
+call s:hi('VisualNOS', ['', ''], [23, 152])
+
+call s:hi('Comment', [65, 65], ['', ''])
+call s:hi('Number', [222, 95], ['', ''])
+call s:hi('Float', [222, 95], ['', ''])
+call s:hi('Boolean', [103, 168], ['', ''])
+call s:hi('String', [109, 30], ['', ''])
+call s:hi('Constant', [73, 23], ['', ''])
+call s:hi('Character', [174, 168], ['', ''])
+call s:hi('Delimiter', [137, 94], ['', ''])
+call s:hi('StringDelimiter', [137, 94], ['', ''])
+call s:hi('Statement', [108, 66], ['', ''])
+" case, default, etc.
+" hi Label ctermfg=
+
+" if else end
+call s:hi('Conditional', [110, 31], ['', ''])
+
+" while end
+call s:hi('Repeat', [68, 67], ['', ''])
+call s:hi('Todo', [161, 125], [s:dark_bg_2, s:light_bg_2])
+call s:hi('Function', [187, 58], ['', ''])
+
+" Macros
+call s:hi('Define', [173, 131], ['', ''])
+call s:hi('Macro', [173, 131], ['', ''])
+call s:hi('Include', [173, 131], ['', ''])
+call s:hi('PreCondit', [173, 131], ['', ''])
+
+
+" #!
+call s:hi('PreProc', [143, 58], ['', ''])
+
+" @abc
+call s:hi('Identifier', [217, 96], ['', ''])
+
+" AAA Abc
+call s:hi('Type', [179, 94], ['', ''])
+
+" + - * / <<
+call s:hi('Operator', [186, 131], ['', ''])
+
+" super yield
+call s:hi('Keyword', [168, 168], ['', ''])
+
+" raise
+call s:hi('Exception', [161, 161], ['', ''])
+"
+" hi StorageClass ctermfg=
+call s:hi('Structure', [116, 23], ['', ''])
+" hi Typedef ctermfg=
+
+call s:hi('Error', [s:dark_fg, s:light_bg_1], [52, 174])
+call s:hi('ErrorMsg', [s:dark_fg, s:light_bg_1], [52, 168])
+call s:hi('Underlined', [181, 168], ['', ''])
+
+" set textwidth=80
+" set colorcolumn=+1
+call s:hi('ColorColumn', ['', ''], [s:dark_bg - 1, s:light_bg - 2])
+
+" GVIM only
+" hi Cursor ctermfg=
+" hi CursorIM ctermfg=
+
+" set cursorline cursorcolumn
+call s:hi('CursorLine', ['', ''], [s:dark_bg - 1, s:light_bg - 1])
+call s:hi('CursorLineNr', [131, 131], [s:dark_bg - 1, s:light_bg - 1])
+call s:hi('CursorColumn', ['', ''], [s:dark_bg - 1, s:light_bg - 1])
+
+call s:hi('Directory', [187, 95], ['', ''])
+
+call s:hi('DiffAdd', ['NONE', 'NONE'], [22, 151])
+call s:hi('DiffDelete', ['NONE', 'NONE'], [95, 181])
+call s:hi('DiffChange', ['NONE', 'NONE'], [s:dark_bg + 3, 189])
+call s:hi('DiffText', ['NONE', 'NONE'], [52, 224])
+
+call s:hi('VertSplit', [s:dark_bg_2, s:light_bg - 3], [s:dark_bg_2, s:light_bg - 3])
+call s:hi('Folded', [101, 101], [s:dark_bg + 1, s:light_bg - 2])
+
+" set foldcolumn=1
+call s:hi('FoldColumn', [144, 94], [s:dark_bg + 1, s:light_bg - 2])
+
+call s:hi('MatchParen', ['', ''], [s:dark_bg + 3, s:light_bg - 3])
+
+" -- INSERT --
+call s:hi('ModeMsg', [173, 173], ['', ''])
+
+" let &showbreak = '> '
+call s:hi('NonText', [101, 101], ['', ''])
+
+call s:hi('MoreMsg', [173, 173], ['', ''])
+
+" Popup menu
+call s:hi('Pmenu', [s:dark_bg + 1, 238], [224, 224])
+call s:hi('PmenuSel', [s:dark_fg, s:dark_fg], [89, 89])
+call s:hi('PmenuSbar', ['', ''], [65, 65])
+call s:hi('PmenuThumb', ['', ''], [23, 23])
+
+call s:hi('Search', [s:dark_fg, 255], [24, 74])
+call s:hi('IncSearch', [220, 220], [s:dark_bg + 1, 238])
+
+" String delimiter, interpolation
+call s:hi('Special', [216, 173], ['', ''])
+" hi SpecialChar ctermfg=
+" hi SpecialComment ctermfg=
+" hi Tag ctermfg=
+" hi Debug ctermfg=
+
+" :map, listchars
+call s:hi('SpecialKey', [59, 145], ['', ''])
+
+if !s:gui
+ " Red / Blue / Cyan / Magenta
+ if s:style_idx == 0
+ hi SpellBad ctermbg=NONE cterm=underline ctermfg=168
+ hi SpellCap ctermbg=NONE cterm=underline ctermfg=110
+ hi SpellLocal ctermbg=NONE cterm=underline ctermfg=153
+ hi SpellRare ctermbg=NONE cterm=underline ctermfg=218
+ else
+ hi SpellBad ctermbg=NONE cterm=underline ctermfg=125
+ hi SpellCap ctermbg=NONE cterm=underline ctermfg=25
+ hi SpellLocal ctermbg=NONE cterm=underline ctermfg=31
+ hi SpellRare ctermbg=NONE cterm=underline ctermfg=96
+ endif
+else
+ if s:style_idx == 0
+ execute 'hi SpellBad gui=undercurl guisp=' . s:rgb_map[168]
+ execute 'hi SpellCap gui=undercurl guisp=' . s:rgb_map[110]
+ execute 'hi SpellLocal gui=undercurl guisp=' . s:rgb_map[153]
+ execute 'hi SpellRare gui=undercurl guisp=' . s:rgb_map[218]
+ else
+ execute 'hi SpellBad gui=undercurl guisp=' . s:rgb_map[125]
+ execute 'hi SpellCap gui=undercurl guisp=' . s:rgb_map[25]
+ execute 'hi SpellLocal gui=undercurl guisp=' . s:rgb_map[31]
+ execute 'hi SpellRare gui=undercurl guisp=' . s:rgb_map[96]
+ endif
+endif
+
+"
+call s:hi('StatusLine', [95, 95], [187, 187])
+call s:hi('StatusLineNC', [s:dark_bg + 2, s:light_bg - 2], [187, 238])
+call s:hi('TabLineFill', [s:dark_bg + 2, s:light_bg - 2], ['', ''])
+call s:hi('TabLineSel', [187, 187], [23, 66])
+call s:hi('TabLine', [s:dark_bg + 12, s:light_bg - 12], [s:dark_bg + 4, s:light_bg - 4])
+call s:hi('WildMenu', [95, 95], [184, 184])
+
+" :set all
+call s:hi('Title', [181, 88], ['', ''])
+
+" TODO
+call s:hi('Question', [179, 88], ['', ''])
+
+" Search hit bottom
+call s:hi('WarningMsg', [179, 88], ['', ''])
+
+" Sign column
+call s:hi('SignColumn', [173, 173], [s:dark_bg, s:light_bg])
+
+" Diff
+call s:hi('diffAdded', [108, 65], ['', ''])
+call s:hi('diffRemoved', [174, 131], ['', ''])
+hi link diffLine Constant
+
+call s:hi('Conceal', [s:dark_fg + 2, s:light_fg - 2], [s:dark_bg - 1, s:light_bg + 2])
+call s:hi('Ignore', [s:dark_bg + 3, s:light_bg - 3], [s:dark_bg, s:light_bg])
+
+"""""""""""""""""""""""""""""""""""""""""""""""""
+" Plugins
+"""""""""""""""""""""""""""""""""""""""""""""""""
+
+" vim-indent-guides
+" -----------------
+let g:indent_guides_auto_colors = 0
+call s:hi('IndentGuidesOdd', ['', ''], [s:dark_bg - 1, s:light_bg + 1])
+call s:hi('IndentGuidesEven', ['', ''], [s:dark_bg + 1, s:light_bg - 1])
+
+" vim-gitgutter
+" -------------
+call s:hi('GitGutterAdd', [108, 65], ['', ''])
+call s:hi('GitGutterChange', [68, 68], ['', ''])
+call s:hi('GitGutterDelete', [161, 161], ['', ''])
+call s:hi('GitGutterChangeDelete', [168, 168], ['', ''])
+
+" http://vim.wikia.com/wiki/Highlight_unwanted_spaces
+" ---------------------------------------------------^^^^^
+call s:hi('ExtraWhitespace', ['', ''], [s:dark_bg - 1, s:light_bg - 2])
+
+" vim-ruby
+" --------
+" " rubySymbol
+let ruby_operators = 1
+call s:hi('rubyClass', [31, 31], ['', ''])
+" call s:hi('rubyInstanceVariable', [189, 189], ['', ''])
+call s:hi('rubyRegexp', [186, 101], ['', ''])
+call s:hi('rubyRegexpDelimiter', [168, 168], ['', ''])
+call s:hi('rubyArrayDelimiter', [67, 38], ['', ''])
+call s:hi('rubyBlockParameterList', [186, 94], ['', ''])
+call s:hi('rubyCurlyBlockDelimiter', [144, 101], ['', ''])
+
+" ARGV $stdout
+call s:hi('rubyPredefinedIdentifier', [230, 52], ['', ''])
+" hi rubyRegexpSpecial
+
+hi CursorLine cterm=NONE
+hi CursorLineNr cterm=NONE
+
+let g:seoul256_current_fg = [s:dark_fg, s:light_fg][s:style_idx]
+let g:seoul256_current_bg = [s:dark_bg, s:light_bg][s:style_idx]
+let g:colors_name = 'seoul256'
+if s:colors_name != g:colors_name || s:background == s:style
+ let &background = s:style
+else
+ let &background = s:background
+endif
diff --git a/colors/solarized.vim b/colors/solarized.vim
new file mode 100644
index 0000000..70f5223
--- /dev/null
+++ b/colors/solarized.vim
@@ -0,0 +1,1117 @@
+" 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
+
+exe "hi! Comment" .s:fmt_ital .s:fg_base01 .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
+"}}}
diff --git a/colors/twilight.vim b/colors/twilight.vim
new file mode 100644
index 0000000..f2ccdd3
--- /dev/null
+++ b/colors/twilight.vim
@@ -0,0 +1,114 @@
+
+set background=dark
+
+hi clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+let colors_name = "twilight"
+
+let s:grey_blue = '#8a9597'
+let s:light_grey_blue = '#a0a8b0'
+let s:dark_grey_blue = '#34383c'
+let s:mid_grey_blue = '#64686c'
+let s:beige = '#ceb67f'
+let s:light_orange = '#ebc471'
+let s:yellow = '#e3d796'
+let s:violet = '#a999ac'
+let s:green = '#a2a96f'
+let s:lightgreen = '#c2c98f'
+let s:red = '#d08356'
+let s:cyan = '#74dad9'
+let s:darkgrey = '#1a1a1a'
+let s:grey = '#303030'
+let s:lightgrey = '#605958'
+let s:white = '#fffedc'
+
+if version >= 700
+ hi CursorLine guibg=#262626
+ hi CursorColumn guibg=#262626
+ hi MatchParen guifg=white guibg=#80a090 gui=bold
+
+ "Tabpages
+ hi TabLine guifg=#a09998 guibg=#202020 gui=underline
+ hi TabLineFill guifg=#a09998 guibg=#202020 gui=underline
+ hi TabLineSel guifg=#a09998 guibg=#404850 gui=underline
+
+ "P-Menu (auto-completion)
+ hi Pmenu guifg=#605958 guibg=#303030 gui=underline
+ hi PmenuSel guifg=#a09998 guibg=#404040 gui=underline
+ "PmenuSbar
+ "PmenuThumb
+endif
+
+hi Visual guibg=#404040
+
+"hi Cursor guifg=NONE guibg=#586068
+hi Cursor guibg=#b0d0f0
+
+
+exe 'hi Normal guifg='.s:white .' guibg='.s:darkgrey
+exe 'hi Underlined guifg='.s:white .' guibg='.s:darkgrey .' gui=underline'
+exe 'hi NonText guifg='.s:lightgrey .' guibg='.s:grey
+exe 'hi SpecialKey guifg='.s:grey .' guibg='.s:darkgrey
+
+exe 'hi LineNr guifg='.s:mid_grey_blue .' guibg='.s:dark_grey_blue .' gui=none'
+exe 'hi StatusLine guifg='.s:white .' guibg='.s:grey .' gui=italic,underline'
+exe 'hi StatusLineNC guifg='.s:lightgrey .' guibg='.s:grey .' gui=italic,underline'
+exe 'hi VertSplit guifg='.s:grey .' guibg='.s:grey .' gui=none'
+
+exe 'hi Folded guifg='.s:grey_blue .' guibg='.s:dark_grey_blue .' gui=none'
+exe 'hi FoldColumn guifg='.s:grey_blue .' guibg='.s:dark_grey_blue .' gui=none'
+exe 'hi SignColumn guifg='.s:grey_blue .' guibg='.s:dark_grey_blue .' gui=none'
+
+exe 'hi Comment guifg='.s:mid_grey_blue .' guibg='.s:darkgrey .' gui=italic'
+exe 'hi TODO guifg='.s:grey_blue .' guibg='.s:darkgrey .' gui=italic,bold'
+
+exe 'hi Title guifg='.s:red .' guibg='.s:darkgrey .' gui=underline'
+
+exe 'hi Constant guifg='.s:red .' guibg='.s:darkgrey .' gui=none'
+exe 'hi String guifg='.s:green .' guibg='.s:darkgrey .' gui=none'
+exe 'hi Special guifg='.s:lightgreen .' guibg='.s:darkgrey .' gui=none'
+
+exe 'hi Identifier guifg='.s:grey_blue .' guibg='.s:darkgrey .' gui=none'
+exe 'hi Statement guifg='.s:beige .' guibg='.s:darkgrey .' gui=none'
+exe 'hi Conditional guifg='.s:beige .' guibg='.s:darkgrey .' gui=none'
+exe 'hi Repeat guifg='.s:beige .' guibg='.s:darkgrey .' gui=none'
+exe 'hi Structure guifg='.s:beige .' guibg='.s:darkgrey .' gui=none'
+exe 'hi Function guifg='.s:violet .' guibg='.s:darkgrey .' gui=none'
+
+exe 'hi PreProc guifg='.s:grey_blue .' guibg='.s:darkgrey .' gui=none'
+exe 'hi Operator guifg='.s:light_orange .' guibg='.s:darkgrey .' gui=none'
+exe 'hi Type guifg='.s:yellow .' guibg='.s:darkgrey .' gui=italic'
+
+"hi Identifier guifg=#7587a6
+" Type d: 'class'
+"hi Structure guifg=#9B859D gui=underline
+"hi Function guifg=#dad085
+" dylan: method, library, ... d: if, return, ...
+"hi Statement guifg=#7187a1 gui=NONE
+" Keywords d: import, module...
+"hi PreProc guifg=#8fbfdc
+"gui=underline
+"hi Operator guifg=#a07020
+"hi Repeat guifg=#906040 gui=underline
+"hi Type guifg=#708090
+
+"hi Type guifg=#f9ee98 gui=NONE
+
+"hi NonText guifg=#808080 guibg=#303030
+
+"hi Macro guifg=#a0b0c0 gui=underline
+
+"Tabs, trailing spaces, etc (lcs)
+"hi SpecialKey guifg=#808080 guibg=#343434
+
+"hi TooLong guibg=#ff0000 guifg=#f8f8f8
+
+hi Search guifg=#606000 guibg=#c0c000 gui=bold
+
+hi Directory guifg=#dad085 gui=NONE
+hi Error guibg=#602020
+
diff --git a/colors/wombat256mod.vim b/colors/wombat256mod.vim
new file mode 100644
index 0000000..1137eb8
--- /dev/null
+++ b/colors/wombat256mod.vim
@@ -0,0 +1,96 @@
+" Vim color file
+" Original Maintainer: Lars H. Nielsen (dengmao@gmail.com)
+" Last Change: 2010-07-23
+"
+" Modified version of wombat for 256-color terminals by
+" David Liang (bmdavll@gmail.com)
+" based on version by
+" Danila Bespalov (danila.bespalov@gmail.com)
+
+set background=dark
+
+if version > 580
+ hi clear
+ if exists("syntax_on")
+ syntax reset
+ endif
+endif
+
+let colors_name = "wombat256mod"
+
+
+" General colors
+hi Normal ctermfg=252 ctermbg=234 cterm=none guifg=#e3e0d7 guibg=#242424 gui=none
+hi Cursor ctermfg=234 ctermbg=228 cterm=none guifg=#242424 guibg=#eae788 gui=none
+hi Visual ctermfg=251 ctermbg=239 cterm=none guifg=#c3c6ca guibg=#554d4b gui=none
+hi VisualNOS ctermfg=251 ctermbg=236 cterm=none guifg=#c3c6ca guibg=#303030 gui=none
+hi Search ctermfg=177 ctermbg=241 cterm=none guifg=#d787ff guibg=#636066 gui=none
+hi Folded ctermfg=103 ctermbg=237 cterm=none guifg=#a0a8b0 guibg=#3a4046 gui=none
+hi Title ctermfg=230 cterm=bold guifg=#ffffd7 gui=bold
+hi StatusLine ctermfg=230 ctermbg=238 cterm=none guifg=#ffffd7 guibg=#444444 gui=italic
+hi VertSplit ctermfg=238 ctermbg=238 cterm=none guifg=#444444 guibg=#444444 gui=none
+hi StatusLineNC ctermfg=241 ctermbg=238 cterm=none guifg=#857b6f guibg=#444444 gui=none
+hi LineNr ctermfg=241 ctermbg=232 cterm=none guifg=#857b6f guibg=#080808 gui=none
+hi SpecialKey ctermfg=241 ctermbg=235 cterm=none guifg=#626262 guibg=#2b2b2b gui=none
+hi WarningMsg ctermfg=203 guifg=#ff5f55
+hi ErrorMsg ctermfg=196 ctermbg=236 cterm=bold guifg=#ff2026 guibg=#3a3a3a gui=bold
+
+" Vim >= 7.0 specific colors
+if version >= 700
+hi CursorLine ctermbg=236 cterm=none guibg=#32322f
+hi MatchParen ctermfg=228 ctermbg=101 cterm=bold guifg=#eae788 guibg=#857b6f gui=bold
+hi Pmenu ctermfg=230 ctermbg=238 guifg=#ffffd7 guibg=#444444
+hi PmenuSel ctermfg=232 ctermbg=192 guifg=#080808 guibg=#cae982
+endif
+
+" Diff highlighting
+hi DiffAdd ctermbg=17 guibg=#2a0d6a
+hi DiffDelete ctermfg=234 ctermbg=60 cterm=none guifg=#242424 guibg=#3e3969 gui=none
+hi DiffText ctermbg=53 cterm=none guibg=#73186e gui=none
+hi DiffChange ctermbg=237 guibg=#382a37
+
+"hi CursorIM
+"hi Directory
+"hi IncSearch
+"hi Menu
+"hi ModeMsg
+"hi MoreMsg
+"hi PmenuSbar
+"hi PmenuThumb
+"hi Question
+"hi Scrollbar
+"hi SignColumn
+"hi SpellBad
+"hi SpellCap
+"hi SpellLocal
+"hi SpellRare
+"hi TabLine
+"hi TabLineFill
+"hi TabLineSel
+"hi Tooltip
+"hi User1
+"hi User9
+"hi WildMenu
+
+
+" Syntax highlighting
+hi Keyword ctermfg=111 cterm=none guifg=#88b8f6 gui=none
+hi Statement ctermfg=111 cterm=none guifg=#88b8f6 gui=none
+hi Constant ctermfg=173 cterm=none guifg=#e5786d gui=none
+hi Number ctermfg=173 cterm=none guifg=#e5786d gui=none
+hi PreProc ctermfg=173 cterm=none guifg=#e5786d gui=none
+hi Function ctermfg=192 cterm=none guifg=#cae982 gui=none
+hi Identifier ctermfg=192 cterm=none guifg=#cae982 gui=none
+hi Type ctermfg=186 cterm=none guifg=#d4d987 gui=none
+hi Special ctermfg=229 cterm=none guifg=#eadead gui=none
+hi String ctermfg=113 cterm=none guifg=#95e454 gui=italic
+hi Comment ctermfg=246 cterm=none guifg=#9c998e gui=italic
+hi Todo ctermfg=101 cterm=none guifg=#857b6f gui=italic
+
+
+" Links
+hi! link FoldColumn Folded
+hi! link CursorColumn CursorLine
+hi! link NonText LineNr
+
+" vim:set ts=4 sw=4 noet:
diff --git a/colors/xoria256.vim b/colors/xoria256.vim
new file mode 100644
index 0000000..7d1010b
--- /dev/null
+++ b/colors/xoria256.vim
@@ -0,0 +1,142 @@
+" Vim color file
+"
+" Name: xoria256.vim
+" Version: 1.5
+" Maintainer: Dmitriy Y. Zotikov (xio) <xio@ungrund.org>
+"
+" Should work in recent 256 color terminals. 88-color terms like urxvt are
+" NOT supported.
+"
+" Don't forget to install 'ncurses-term' and set TERM to xterm-256color or
+" similar value.
+"
+" Color numbers (0-255) see:
+" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html
+"
+" For a specific filetype highlighting rules issue :syntax list when a file of
+" that type is opened.
+
+" Initialization {{{
+if &t_Co != 256 && ! has("gui_running")
+ echomsg ""
+ echomsg "err: please use GUI or a 256-color terminal (so that t_Co=256 could be set)"
+ echomsg ""
+ finish
+endif
+
+set background=dark
+
+hi clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+let colors_name = "xoria256"
+"}}}
+" Colours {{{1
+"" General {{{2
+hi Normal ctermfg=252 guifg=#d0d0d0 ctermbg=234 guibg=#1c1c1c cterm=none gui=none
+hi Cursor ctermbg=214 guibg=#ffaf00
+hi CursorColumn ctermbg=238 guibg=#444444
+hi CursorLine ctermbg=237 guibg=#3a3a3a cterm=none gui=none
+hi Error ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000
+hi ErrorMsg ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000
+hi FoldColumn ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
+hi Folded ctermfg=255 guifg=#eeeeee ctermbg=60 guibg=#5f5f87
+hi IncSearch ctermfg=0 guifg=#000000 ctermbg=223 guibg=#ffdfaf cterm=none gui=none
+hi LineNr ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
+hi MatchParen ctermfg=188 guifg=#dfdfdf ctermbg=68 guibg=#5f87df cterm=bold gui=bold
+" TODO
+" hi MoreMsg
+hi NonText ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212 cterm=bold gui=bold
+hi Pmenu ctermfg=0 guifg=#000000 ctermbg=250 guibg=#bcbcbc
+hi PmenuSel ctermfg=255 guifg=#eeeeee ctermbg=243 guibg=#767676
+hi PmenuSbar ctermbg=252 guibg=#d0d0d0
+hi PmenuThumb ctermfg=243 guifg=#767676
+hi Search ctermfg=0 guifg=#000000 ctermbg=149 guibg=#afdf5f
+hi SignColumn ctermfg=248 guifg=#a8a8a8
+hi SpecialKey ctermfg=77 guifg=#5fdf5f
+hi SpellBad ctermfg=160 guifg=fg ctermbg=bg cterm=underline guisp=#df0000
+hi SpellCap ctermfg=189 guifg=#dfdfff ctermbg=bg guibg=bg cterm=underline gui=underline
+hi SpellRare ctermfg=168 guifg=#df5f87 ctermbg=bg guibg=bg cterm=underline gui=underline
+hi SpellLocal ctermfg=98 guifg=#875fdf ctermbg=bg guibg=bg cterm=underline gui=underline
+hi StatusLine ctermfg=15 guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold
+hi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none
+hi TabLine ctermfg=fg guifg=fg ctermbg=242 guibg=#666666 cterm=none gui=none
+hi TabLineFill ctermfg=fg guifg=fg ctermbg=237 guibg=#3a3a3a cterm=none gui=none
+" FIXME
+hi Title ctermfg=225 guifg=#ffdfff
+hi Todo ctermfg=0 guifg=#000000 ctermbg=184 guibg=#dfdf00
+hi Underlined ctermfg=39 guifg=#00afff cterm=underline gui=underline
+hi VertSplit ctermfg=237 guifg=#3a3a3a ctermbg=237 guibg=#3a3a3a cterm=none gui=none
+" hi VIsualNOS ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff cterm=none gui=none
+" hi Visual ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff
+hi Visual ctermfg=255 guifg=#eeeeee ctermbg=96 guibg=#875f87
+" hi Visual ctermfg=255 guifg=#eeeeee ctermbg=24 guibg=#005f87
+hi VisualNOS ctermfg=255 guifg=#eeeeee ctermbg=60 guibg=#5f5f87
+hi WildMenu ctermfg=0 guifg=#000000 ctermbg=150 guibg=#afdf87 cterm=bold gui=bold
+
+"" Syntax highlighting {{{2
+hi Comment ctermfg=244 guifg=#808080
+hi Constant ctermfg=229 guifg=#ffffaf
+hi Identifier ctermfg=182 guifg=#dfafdf cterm=none
+hi Ignore ctermfg=238 guifg=#444444
+hi Number ctermfg=180 guifg=#dfaf87
+hi PreProc ctermfg=150 guifg=#afdf87
+hi Special ctermfg=174 guifg=#df8787
+hi Statement ctermfg=110 guifg=#87afdf cterm=none gui=none
+hi Type ctermfg=146 guifg=#afafdf cterm=none gui=none
+
+"" Special {{{2
+""" .diff {{{3
+hi diffAdded ctermfg=150 guifg=#afdf87
+hi diffRemoved ctermfg=174 guifg=#df8787
+""" vimdiff {{{3
+hi diffAdd ctermfg=bg guifg=bg ctermbg=151 guibg=#afdfaf
+"hi diffDelete ctermfg=bg guifg=bg ctermbg=186 guibg=#dfdf87 cterm=none gui=none
+hi diffDelete ctermfg=bg guifg=bg ctermbg=246 guibg=#949494 cterm=none gui=none
+hi diffChange ctermfg=bg guifg=bg ctermbg=181 guibg=#dfafaf
+hi diffText ctermfg=bg guifg=bg ctermbg=174 guibg=#df8787 cterm=none gui=none
+""" HTML {{{3
+" hi htmlTag ctermfg=146 guifg=#afafdf
+" hi htmlEndTag ctermfg=146 guifg=#afafdf
+hi htmlTag ctermfg=244
+hi htmlEndTag ctermfg=244
+hi htmlArg ctermfg=182 guifg=#dfafdf
+hi htmlValue ctermfg=187 guifg=#dfdfaf
+hi htmlTitle ctermfg=254 ctermbg=95
+" hi htmlArg ctermfg=146
+" hi htmlTagName ctermfg=146
+" hi htmlString ctermfg=187
+""" django {{{3
+hi djangoVarBlock ctermfg=180
+hi djangoTagBlock ctermfg=150
+hi djangoStatement ctermfg=146
+hi djangoFilter ctermfg=174
+""" python {{{3
+hi pythonExceptions ctermfg=174
+""" NERDTree {{{3
+hi Directory ctermfg=110 guifg=#87afdf
+hi treeCWD ctermfg=180 guifg=#dfaf87
+hi treeClosable ctermfg=174 guifg=#df8787
+hi treeOpenable ctermfg=150 guifg=#afdf87
+hi treePart ctermfg=244 guifg=#808080
+hi treeDirSlash ctermfg=244 guifg=#808080
+hi treeLink ctermfg=182 guifg=#dfafdf
+
+""" VimDebug {{{3
+" FIXME
+" you may want to set SignColumn highlight in your .vimrc
+" :help sign
+" :help SignColumn
+
+" hi currentLine term=reverse cterm=reverse gui=reverse
+" hi breakPoint term=NONE cterm=NONE gui=NONE
+" hi empty term=NONE cterm=NONE gui=NONE
+
+" sign define currentLine linehl=currentLine
+" sign define breakPoint linehl=breakPoint text=>>
+" sign define both linehl=currentLine text=>>
+" sign define empty linehl=empty
+
diff --git a/config/misc.vim b/config/misc.vim
new file mode 100644
index 0000000..1f6a9c8
--- /dev/null
+++ b/config/misc.vim
@@ -0,0 +1,6 @@
+colorscheme wombat256mod
+
+au BufNewFile *.page 0r ~/.vim/skeleton/page
+au BufRead,BufNewFile *.page set filetype=mkd
+let g:vim_markdown_folding_disabled=1
+let g:vim_markdown_math=1
diff --git a/config/neocomplete.vim b/config/neocomplete.vim
new file mode 100644
index 0000000..07268cf
--- /dev/null
+++ b/config/neocomplete.vim
@@ -0,0 +1,85 @@
+" Note: This option must set it in .vimrc(_vimrc). NOT IN .gvimrc(_gvimrc)!
+" Disable AutoComplPop.
+let g:acp_enableAtStartup = 0
+" Use neocomplete.
+let g:neocomplete#enable_at_startup = 1
+" Use smartcase.
+let g:neocomplete#enable_smart_case = 1
+" Set minimum syntax keyword length.
+let g:neocomplete#sources#syntax#min_keyword_length = 3
+let g:neocomplete#lock_buffer_name_pattern = '\*ku\*'
+
+" Define dictionary.
+let g:neocomplete#sources#dictionary#dictionaries = {
+ \ 'default' : '',
+ \ 'vimshell' : $HOME.'/.vimshell_hist',
+ \ 'scheme' : $HOME.'/.gosh_completions'
+ \ }
+
+" Define keyword.
+if !exists('g:neocomplete#keyword_patterns')
+ let g:neocomplete#keyword_patterns = {}
+endif
+let g:neocomplete#keyword_patterns['default'] = '\h\w*'
+
+" Plugin key-mappings.
+inoremap <expr><C-g> neocomplete#undo_completion()
+inoremap <expr><C-l> neocomplete#complete_common_string()
+
+" Recommended key-mappings.
+" <CR>: close popup and save indent.
+inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
+function! s:my_cr_function()
+ return neocomplete#close_popup() . "\<CR>"
+ " For no inserting <CR> key.
+ "return pumvisible() ? neocomplete#close_popup() : "\<CR>"
+endfunction
+" <TAB>: completion.
+inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
+" <C-h>, <BS>: close popup and delete backword char.
+inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>"
+inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"
+inoremap <expr><C-y> neocomplete#close_popup()
+inoremap <expr><C-e> neocomplete#cancel_popup()
+" Close popup by <Space>.
+"inoremap <expr><Space> pumvisible() ? neocomplete#close_popup() : "\<Space>"
+
+" For cursor moving in insert mode(Not recommended)
+"inoremap <expr><Left> neocomplete#close_popup() . "\<Left>"
+"inoremap <expr><Right> neocomplete#close_popup() . "\<Right>"
+"inoremap <expr><Up> neocomplete#close_popup() . "\<Up>"
+"inoremap <expr><Down> neocomplete#close_popup() . "\<Down>"
+" Or set this.
+"let g:neocomplete#enable_cursor_hold_i = 1
+" Or set this.
+"let g:neocomplete#enable_insert_char_pre = 1
+
+" AutoComplPop like behavior.
+"let g:neocomplete#enable_auto_select = 1
+
+" Shell like behavior(not recommended).
+"set completeopt+=longest
+"let g:neocomplete#enable_auto_select = 1
+"let g:neocomplete#disable_auto_complete = 1
+"inoremap <expr><TAB> pumvisible() ? "\<Down>" : "\<C-x>\<C-u>"
+
+" Enable omni completion.
+autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
+autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
+autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
+autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
+autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags
+autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc
+
+" Enable heavy omni completion.
+if !exists('g:neocomplete#sources#omni#input_patterns')
+ let g:neocomplete#sources#omni#input_patterns = {}
+endif
+
+"let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::'
+""let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)'
+"let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::'
+"
+"" For perlomni.vim setting.
+" https://github.com/c9s/perlomni.vim
+let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::'
diff --git a/skeleton/page b/skeleton/page
new file mode 100644
index 0000000..3c64c9e
--- /dev/null
+++ b/skeleton/page
@@ -0,0 +1,7 @@
+---
+title:
+categories:
+toc:
+...
+
+