diff options
-rw-r--r-- | .gitmodules | 18 | ||||
m--------- | bundle/markdown | 0 | ||||
m--------- | bundle/neco-ghc | 0 | ||||
m--------- | bundle/neocomplete | 0 | ||||
m--------- | bundle/tabular | 0 | ||||
m--------- | bundle/unbundle | 0 | ||||
m--------- | bundle/vimproc | 0 | ||||
-rw-r--r-- | colors/gruvbox.vim | 1027 | ||||
-rw-r--r-- | colors/hemisu.vim | 215 | ||||
-rw-r--r-- | colors/jellybeans.vim | 551 | ||||
-rw-r--r-- | colors/molokai.vim | 276 | ||||
-rw-r--r-- | colors/seoul256.vim | 341 | ||||
-rw-r--r-- | colors/solarized.vim | 1117 | ||||
-rw-r--r-- | colors/twilight.vim | 114 | ||||
-rw-r--r-- | colors/wombat256mod.vim | 96 | ||||
-rw-r--r-- | colors/xoria256.vim | 142 | ||||
-rw-r--r-- | config/misc.vim | 6 | ||||
-rw-r--r-- | config/neocomplete.vim | 85 | ||||
-rw-r--r-- | skeleton/page | 7 |
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: +... + + |