From 25f5b579a3726f84c5244890374bfb2e71fe38f7 Mon Sep 17 00:00:00 2001 From: gryf Date: Fri, 25 Feb 2011 09:16:32 +0100 Subject: [PATCH] Added plugin gundo, updateted lucius, added some other nice colorschemes --- GetLatest/GetLatestVimScripts.dat | 3 +- colors/github.vim | 140 ++++ colors/inkpot.vim | 217 ++++++ colors/ir_black.vim | 213 ++++++ colors/jellybeans.vim | 426 ++++++++++++ colors/lucius.vim | 837 +++++++++++++++-------- colors/sorcerer.vim | 97 +++ colors/vydark.vim | 84 +++ colors/vylight.vim | 82 +++ colors/zenburn.vim | 433 ++++++++++++ compiler/jsl.vim | 14 + doc/gundo.txt | 221 ++++++ doc/tags | 16 + plugin/gundo.vim | 1040 +++++++++++++++++++++++++++++ 14 files changed, 3560 insertions(+), 263 deletions(-) create mode 100644 colors/github.vim create mode 100644 colors/inkpot.vim create mode 100644 colors/ir_black.vim create mode 100644 colors/jellybeans.vim create mode 100644 colors/sorcerer.vim create mode 100644 colors/vydark.vim create mode 100644 colors/vylight.vim create mode 100644 colors/zenburn.vim create mode 100644 compiler/jsl.vim create mode 100644 doc/gundo.txt create mode 100644 plugin/gundo.vim diff --git a/GetLatest/GetLatestVimScripts.dat b/GetLatest/GetLatestVimScripts.dat index 0909f93..6282f05 100644 --- a/GetLatest/GetLatestVimScripts.dat +++ b/GetLatest/GetLatestVimScripts.dat @@ -5,6 +5,7 @@ ScriptID SourceID Filename #2754 13139 :AutoInstall: delimitMate.vim 1984 13961 fuzzyfinder.vim 311 7645 grep.vim +3304 14226 gundo.vim 2727 11120 jsbeautify.vim 2666 14741 Mark 2262 8944 occur.vim @@ -22,7 +23,7 @@ ScriptID SourceID Filename 3252 13948 :AutoInstall: L9 ### colors 1975 7471 lettuce.vim -2536 14531 lucius.vim +2536 15100 lucius.vim 1165 3741 tolerable.vim # compiler 891 10365 pylint.vim diff --git a/colors/github.vim b/colors/github.vim new file mode 100644 index 0000000..6975579 --- /dev/null +++ b/colors/github.vim @@ -0,0 +1,140 @@ +" Vim color file +" +" Author: Anthony Carapetis +" +" Note: Based on github's syntax highlighting theme +" Used Brian Mock's darkspectrum as a starting point/template +" Thanks to Ryan Heath for an easy list of some of the colours: +" http://rpheath.com/posts/356-github-theme-for-syntax-gem + +hi clear + +set background=light +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="github" + +hi Normal guifg=#000000 guibg=#F8F8FF + +" {{{ Cursor +hi Cursor guibg=#444454 guifg=#F8F8FF +hi CursorLine guibg=#D8D8DD +hi CursorColumn guibg=#E8E8EE +hi ColorColumn guibg=#E8E8EE +" }}} + +" {{{ Diff +hi DiffAdd guifg=#003300 guibg=#DDFFDD gui=none +hi DiffChange guibg=#ececec gui=none +hi DiffText guifg=#000033 guibg=#DDDDFF gui=none +hi DiffDelete guifg=#DDCCCC guibg=#FFDDDD gui=none +" }}} + +" {{{ Folding / Line Numbering / Status Lines +hi Folded guibg=#ECECEC guifg=#808080 gui=bold +hi vimFold guibg=#ECECEC guifg=#808080 gui=bold +hi FoldColumn guibg=#ECECEC guifg=#808080 gui=bold + +hi LineNr guifg=#959595 guibg=#ECECEC gui=bold +hi NonText guifg=#808080 guibg=#ECECEC +hi Folded guifg=#808080 guibg=#ECECEC gui=bold +hi FoldeColumn guifg=#808080 guibg=#ECECEC gui=bold + +hi VertSplit guibg=#bbbbbb guifg=#bbbbbb gui=none +hi StatusLine guibg=#bbbbbb guifg=#404040 gui=bold +hi StatusLineNC guibg=#d4d4d4 guifg=#404040 gui=italic +" }}} + +" {{{ Misc +hi ModeMsg guifg=#990000 +hi MoreMsg guifg=#990000 + +hi Title guifg=#ef5939 +hi WarningMsg guifg=#ef5939 +hi SpecialKey guifg=#177F80 gui=italic + +hi MatchParen guibg=#cdcdfd guifg=#000000 +hi Underlined guifg=#000000 gui=underline +hi Directory guifg=#990000 +" }}} + +" {{{ Search, Visual, etc +hi Visual guifg=#FFFFFF guibg=#3465a4 gui=none +hi VisualNOS guifg=#FFFFFF guibg=#204a87 gui=none +hi IncSearch guibg=#cdcdfd guifg=#000000 gui=italic +hi Search guibg=#cdcdfd guifg=#000000 gui=italic +" }}} + +" {{{ Syntax groups +hi Ignore guifg=#808080 +hi Identifier guifg=#0086B3 +hi PreProc guifg=#A0A0A0 gui=bold +hi Comment guifg=#999988 +hi Constant guifg=#177F80 gui=none +hi String guifg=#D81745 +hi Function guifg=#990000 gui=bold +hi Statement guifg=#000000 gui=bold +hi Type guifg=#445588 gui=bold +hi Number guifg=#1C9898 +hi Todo guifg=#FFFFFF guibg=#990000 gui=bold +hi Special guifg=#159828 gui=bold +hi rubySymbol guifg=#960B73 +hi Error guibg=#f8f8ff guifg=#ff1100 gui=undercurl +hi Todo guibg=#f8f8ff guifg=#ff1100 gui=underline +hi Label guifg=#000000 gui=bold +hi StorageClass guifg=#000000 gui=bold +hi Structure guifg=#000000 gui=bold +hi TypeDef guifg=#000000 gui=bold +" }}} + +" {{{ Completion menus +hi WildMenu guifg=#7fbdff guibg=#425c78 gui=none + +hi Pmenu guibg=#808080 guifg=#ffffff gui=bold +hi PmenuSel guibg=#cdcdfd guifg=#000000 gui=italic +hi PmenuSbar guibg=#000000 guifg=#444444 +hi PmenuThumb guibg=#aaaaaa guifg=#aaaaaa +" }}} + +" {{{ Spelling +hi spellBad guisp=#fcaf3e +hi spellCap guisp=#73d216 +hi spellRare guisp=#fcaf3e +hi spellLocal guisp=#729fcf +" }}} + +" {{{ Aliases +hi link cppSTL Function +hi link cppSTLType Type +hi link Character Number +hi link htmlTag htmlEndTag +"hi link htmlTagName htmlTag +hi link htmlLink Underlined +hi link pythonFunction Identifier +hi link Question Type +hi link CursorIM Cursor +hi link VisualNOS Visual +hi link xmlTag Identifier +hi link xmlTagName Identifier +hi link shDeref Identifier +hi link shVariable Function +hi link rubySharpBang Special +hi link perlSharpBang Special +hi link schemeFunc Statement +"hi link shSpecialVariables Constant +"hi link bashSpecialVariables Constant +" }}} + +" {{{ Tabs (non-gui0 +hi TabLine guifg=#404040 guibg=#dddddd gui=none +hi TabLineFill guifg=#404040 guibg=#dddddd gui=none +hi TabLineSel guifg=#404040 gui=bold +" }}} +" +" vim: sw=4 ts=4 foldmethod=marker diff --git a/colors/inkpot.vim b/colors/inkpot.vim new file mode 100644 index 0000000..cef3f25 --- /dev/null +++ b/colors/inkpot.vim @@ -0,0 +1,217 @@ +" Vim color file +" Name: inkpot.vim +" Maintainer: Ciaran McCreesh +" Homepage: http://github.com/ciaranm/inkpot/ +" +" This should work in the GUI, rxvt-unicode (88 colour mode) and xterm (256 +" colour mode). It won't work in 8/16 colour terminals. +" +" To use a black background, :let g:inkpot_black_background = 1 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "inkpot" + +" map a urxvt cube number to an xterm-256 cube number +fun! M(a) + return strpart("0135", a:a, 1) + 0 +endfun + +" map a urxvt colour to an xterm-256 colour +fun! X(a) + if &t_Co == 88 + return a:a + else + if a:a == 8 + return 237 + elseif a:a < 16 + return a:a + elseif a:a > 79 + return 232 + (3 * (a:a - 80)) + else + let l:b = a:a - 16 + let l:x = l:b % 4 + let l:y = (l:b / 4) % 4 + let l:z = (l:b / 16) + return 16 + M(l:x) + (6 * M(l:y)) + (36 * M(l:z)) + endif + endif +endfun + +if ! exists("g:inkpot_black_background") + let g:inkpot_black_background = 0 +endif + +if has("gui_running") + if ! g:inkpot_black_background + hi Normal gui=NONE guifg=#cfbfad guibg=#1e1e27 + else + hi Normal gui=NONE guifg=#cfbfad guibg=#000000 + endif + + hi CursorLine guibg=#2e2e37 + hi ColorColumn guibg=#2e2e37 + + hi IncSearch gui=BOLD guifg=#303030 guibg=#cd8b60 + hi Search gui=NONE guifg=#303030 guibg=#ad7b57 + hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#ce4e4e + hi WarningMsg gui=BOLD guifg=#ffffff guibg=#ce8e4e + hi ModeMsg gui=BOLD guifg=#7e7eae guibg=NONE + hi MoreMsg gui=BOLD guifg=#7e7eae guibg=NONE + hi Question gui=BOLD guifg=#ffcd00 guibg=NONE + + hi StatusLine gui=BOLD guifg=#b9b9b9 guibg=#3e3e5e + hi User1 gui=BOLD guifg=#00ff8b guibg=#3e3e5e + hi User2 gui=BOLD guifg=#7070a0 guibg=#3e3e5e + hi StatusLineNC gui=NONE guifg=#b9b9b9 guibg=#3e3e5e + hi VertSplit gui=NONE guifg=#b9b9b9 guibg=#3e3e5e + + hi WildMenu gui=BOLD guifg=#eeeeee guibg=#6e6eaf + + hi MBENormal guifg=#cfbfad guibg=#2e2e3f + hi MBEChanged guifg=#eeeeee guibg=#2e2e3f + hi MBEVisibleNormal guifg=#cfcfcd guibg=#4e4e8f + hi MBEVisibleChanged guifg=#eeeeee guibg=#4e4e8f + + hi DiffText gui=NONE guifg=#ffffcd guibg=#4a2a4a + hi DiffChange gui=NONE guifg=#ffffcd guibg=#306b8f + hi DiffDelete gui=NONE guifg=#ffffcd guibg=#6d3030 + hi DiffAdd gui=NONE guifg=#ffffcd guibg=#306d30 + + hi Cursor gui=NONE guifg=#404040 guibg=#8b8bff + hi lCursor gui=NONE guifg=#404040 guibg=#8fff8b + hi CursorIM gui=NONE guifg=#404040 guibg=#8b8bff + + hi Folded gui=NONE guifg=#cfcfcd guibg=#4b208f + hi FoldColumn gui=NONE guifg=#8b8bcd guibg=#2e2e2e + + hi Directory gui=NONE guifg=#00ff8b guibg=NONE + hi LineNr gui=NONE guifg=#8b8bcd guibg=#2e2e2e + hi NonText gui=BOLD guifg=#8b8bcd guibg=NONE + hi SpecialKey gui=BOLD guifg=#ab60ed guibg=NONE + hi Title gui=BOLD guifg=#af4f4b guibg=NONE + hi Visual gui=NONE guifg=#eeeeee guibg=#4e4e8f + + hi Comment gui=NONE guifg=#cd8b00 guibg=NONE + hi Constant gui=NONE guifg=#ffcd8b guibg=NONE + hi String gui=NONE guifg=#ffcd8b guibg=#404040 + hi Error gui=NONE guifg=#ffffff guibg=#6e2e2e + hi Identifier gui=NONE guifg=#ff8bff guibg=NONE + hi Ignore gui=NONE + hi Number gui=NONE guifg=#f0ad6d guibg=NONE + hi PreProc gui=NONE guifg=#409090 guibg=NONE + hi Special gui=NONE guifg=#c080d0 guibg=NONE + hi SpecialChar gui=NONE guifg=#c080d0 guibg=#404040 + hi Statement gui=NONE guifg=#808bed guibg=NONE + hi Todo gui=BOLD guifg=#303030 guibg=#d0a060 + hi Type gui=NONE guifg=#ff8bff guibg=NONE + hi Underlined gui=BOLD guifg=#df9f2d guibg=NONE + hi TaglistTagName gui=BOLD guifg=#808bed guibg=NONE + + hi perlSpecialMatch gui=NONE guifg=#c080d0 guibg=#404040 + hi perlSpecialString gui=NONE guifg=#c080d0 guibg=#404040 + + hi cSpecialCharacter gui=NONE guifg=#c080d0 guibg=#404040 + hi cFormat gui=NONE guifg=#c080d0 guibg=#404040 + + hi doxygenBrief gui=NONE guifg=#fdab60 guibg=NONE + hi doxygenParam gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenPrev gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenSmallSpecial gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenSpecial gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenComment gui=NONE guifg=#ad7b20 guibg=NONE + hi doxygenSpecial gui=NONE guifg=#fdab60 guibg=NONE + hi doxygenSpecialMultilineDesc gui=NONE guifg=#ad600b guibg=NONE + hi doxygenSpecialOnelineDesc gui=NONE guifg=#ad600b guibg=NONE + + if v:version >= 700 + hi Pmenu gui=NONE guifg=#eeeeee guibg=#4e4e8f + hi PmenuSel gui=BOLD guifg=#eeeeee guibg=#2e2e3f + hi PmenuSbar gui=BOLD guifg=#eeeeee guibg=#6e6eaf + hi PmenuThumb gui=BOLD guifg=#eeeeee guibg=#6e6eaf + + hi SpellBad gui=undercurl guisp=#cc6666 + hi SpellRare gui=undercurl guisp=#cc66cc + hi SpellLocal gui=undercurl guisp=#cccc66 + hi SpellCap gui=undercurl guisp=#66cccc + + hi MatchParen gui=NONE guifg=#cfbfad guibg=#4e4e8f + endif +else + if ! g:inkpot_black_background + exec "hi Normal cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(80) + else + exec "hi Normal cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(16) + endif + + exec "hi IncSearch cterm=BOLD ctermfg=" . X(80) . " ctermbg=" . X(73) + exec "hi Search cterm=NONE ctermfg=" . X(80) . " ctermbg=" . X(52) + exec "hi ErrorMsg cterm=BOLD ctermfg=" . X(16) . " ctermbg=" . X(48) + exec "hi WarningMsg cterm=BOLD ctermfg=" . X(16) . " ctermbg=" . X(68) + exec "hi ModeMsg cterm=BOLD ctermfg=" . X(38) . " ctermbg=" . "NONE" + exec "hi MoreMsg cterm=BOLD ctermfg=" . X(38) . " ctermbg=" . "NONE" + exec "hi Question cterm=BOLD ctermfg=" . X(52) . " ctermbg=" . "NONE" + + exec "hi StatusLine cterm=BOLD ctermfg=" . X(85) . " ctermbg=" . X(81) + exec "hi User1 cterm=BOLD ctermfg=" . X(28) . " ctermbg=" . X(81) + exec "hi User2 cterm=BOLD ctermfg=" . X(39) . " ctermbg=" . X(81) + exec "hi StatusLineNC cterm=NONE ctermfg=" . X(84) . " ctermbg=" . X(81) + exec "hi VertSplit cterm=NONE ctermfg=" . X(84) . " ctermbg=" . X(81) + + exec "hi WildMenu cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(38) + + exec "hi MBENormal ctermfg=" . X(85) . " ctermbg=" . X(81) + exec "hi MBEChanged ctermfg=" . X(87) . " ctermbg=" . X(81) + exec "hi MBEVisibleNormal ctermfg=" . X(85) . " ctermbg=" . X(82) + exec "hi MBEVisibleChanged ctermfg=" . X(87) . " ctermbg=" . X(82) + + exec "hi DiffText cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(34) + exec "hi DiffChange cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(17) + exec "hi DiffDelete cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(32) + exec "hi DiffAdd cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(20) + + exec "hi Folded cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(35) + exec "hi FoldColumn cterm=NONE ctermfg=" . X(39) . " ctermbg=" . X(80) + + exec "hi Directory cterm=NONE ctermfg=" . X(28) . " ctermbg=" . "NONE" + exec "hi LineNr cterm=NONE ctermfg=" . X(39) . " ctermbg=" . X(80) + exec "hi NonText cterm=BOLD ctermfg=" . X(39) . " ctermbg=" . "NONE" + exec "hi SpecialKey cterm=BOLD ctermfg=" . X(55) . " ctermbg=" . "NONE" + exec "hi Title cterm=BOLD ctermfg=" . X(48) . " ctermbg=" . "NONE" + exec "hi Visual cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(38) + + exec "hi Comment cterm=NONE ctermfg=" . X(52) . " ctermbg=" . "NONE" + exec "hi Constant cterm=NONE ctermfg=" . X(73) . " ctermbg=" . "NONE" + exec "hi String cterm=NONE ctermfg=" . X(73) . " ctermbg=" . X(81) + exec "hi Error cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(32) + exec "hi Identifier cterm=NONE ctermfg=" . X(53) . " ctermbg=" . "NONE" + exec "hi Ignore cterm=NONE" + exec "hi Number cterm=NONE ctermfg=" . X(69) . " ctermbg=" . "NONE" + exec "hi PreProc cterm=NONE ctermfg=" . X(25) . " ctermbg=" . "NONE" + exec "hi Special cterm=NONE ctermfg=" . X(55) . " ctermbg=" . "NONE" + exec "hi SpecialChar cterm=NONE ctermfg=" . X(55) . " ctermbg=" . X(81) + exec "hi Statement cterm=NONE ctermfg=" . X(27) . " ctermbg=" . "NONE" + exec "hi Todo cterm=BOLD ctermfg=" . X(16) . " ctermbg=" . X(57) + exec "hi Type cterm=NONE ctermfg=" . X(71) . " ctermbg=" . "NONE" + exec "hi Underlined cterm=BOLD ctermfg=" . X(77) . " ctermbg=" . "NONE" + exec "hi TaglistTagName cterm=BOLD ctermfg=" . X(39) . " ctermbg=" . "NONE" + + if v:version >= 700 + exec "hi Pmenu cterm=NONE ctermfg=" . X(87) . " ctermbg=" . X(82) + exec "hi PmenuSel cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(38) + exec "hi PmenuSbar cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(39) + exec "hi PmenuThumb cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(39) + + exec "hi SpellBad cterm=NONE ctermbg=" . X(32) + exec "hi SpellRare cterm=NONE ctermbg=" . X(33) + exec "hi SpellLocal cterm=NONE ctermbg=" . X(36) + exec "hi SpellCap cterm=NONE ctermbg=" . X(21) + exec "hi MatchParen cterm=NONE ctermbg=" . X(14) . "ctermfg=" . X(25) + endif +endif + +" vim: set et : diff --git a/colors/ir_black.vim b/colors/ir_black.vim new file mode 100644 index 0000000..06e6b5f --- /dev/null +++ b/colors/ir_black.vim @@ -0,0 +1,213 @@ +" ir_black color scheme +" More at: http://blog.infinitered.com/entries/show/8 + + +" ******************************************************************************** +" Standard colors used in all ir_black themes: +" Note, x:x:x are RGB values +" +" normal: #f6f3e8 +" +" string: #A8FF60 168:255:96 +" string inner (punc, code, etc): #00A0A0 0:160:160 +" number: #FF73FD 255:115:253 +" comments: #7C7C7C 124:124:124 +" keywords: #96CBFE 150:203:254 +" operators: white +" class: #FFFFB6 255:255:182 +" method declaration name: #FFD2A7 255:210:167 +" regular expression: #E9C062 233:192:98 +" regexp alternate: #FF8000 255:128:0 +" regexp alternate 2: #B18A3D 177:138:61 +" variable: #C6C5FE 198:197:254 +" +" Misc colors: +" red color (used for whatever): #FF6C60 255:108:96 +" light red: #FFB6B0 255:182:176 +" +" brown: #E18964 good for special +" +" lightpurpleish: #FFCCFF +" +" Interface colors: +" background color: black +" cursor (where underscore is used): #FFA560 255:165:96 +" cursor (where block is used): white +" visual selection: #1D1E2C +" current line: #151515 21:21:21 +" search selection: #07281C 7:40:28 +" line number: #3D3D3D 61:61:61 + + +" ******************************************************************************** +" The following are the preferred 16 colors for your terminal +" Colors Bright Colors +" Black #4E4E4E #7C7C7C +" Red #FF6C60 #FFB6B0 +" Green #A8FF60 #CEFFAB +" Yellow #FFFFB6 #FFFFCB +" Blue #96CBFE #FFFFCB +" Magenta #FF73FD #FF9CFE +" Cyan #C6C5FE #DFDFFE +" White #EEEEEE #FFFFFF + + +" ******************************************************************************** +set background=dark +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "ir_black" + + +"hi Example guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + +" General colors +hi Normal guifg=#f6f3e8 guibg=black gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE +hi NonText guifg=#070707 guibg=black gui=NONE ctermfg=black ctermbg=NONE cterm=NONE + +hi Cursor guifg=black guibg=white gui=NONE ctermfg=black ctermbg=white cterm=reverse +hi LineNr guifg=#3D3D3D guibg=black gui=NONE ctermfg=darkgray ctermbg=NONE cterm=NONE + +hi VertSplit guifg=#202020 guibg=#202020 gui=NONE ctermfg=darkgray ctermbg=darkgray cterm=NONE +hi StatusLine guifg=#CCCCCC guibg=#202020 gui=italic ctermfg=white ctermbg=darkgray cterm=NONE +hi StatusLineNC guifg=black guibg=#202020 gui=NONE ctermfg=blue ctermbg=darkgray cterm=NONE + +hi Folded guifg=#a0a8b0 guibg=#384048 gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE +hi Title guifg=#f6f3e8 guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE +hi Visual guifg=NONE guibg=#262D51 gui=NONE ctermfg=NONE ctermbg=darkgray cterm=NONE + +hi SpecialKey guifg=#808080 guibg=#343434 gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + +hi WildMenu guifg=green guibg=yellow gui=NONE ctermfg=black ctermbg=yellow cterm=NONE +hi PmenuSbar guifg=black guibg=white gui=NONE ctermfg=black ctermbg=white cterm=NONE +"hi Ignore guifg=gray guibg=black gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + +hi Error guifg=NONE guibg=NONE gui=undercurl ctermfg=white ctermbg=red cterm=NONE guisp=#FF6C60 " undercurl color +hi ErrorMsg guifg=white guibg=#FF6C60 gui=BOLD ctermfg=white ctermbg=red cterm=NONE +hi WarningMsg guifg=white guibg=#FF6C60 gui=BOLD ctermfg=white ctermbg=red cterm=NONE + +" Message displayed in lower left, such as --INSERT-- +hi ModeMsg guifg=black guibg=#C6C5FE gui=BOLD ctermfg=black ctermbg=cyan cterm=BOLD + +if version >= 700 " Vim 7.x specific colors + hi CursorLine guifg=NONE guibg=#121212 gui=NONE ctermfg=NONE ctermbg=NONE cterm=BOLD + hi CursorColumn guifg=NONE guibg=#121212 gui=NONE ctermfg=NONE ctermbg=NONE cterm=BOLD + hi ColorColumn guifg=NONE guibg=#121212 gui=NONE ctermfg=NONE ctermbg=NONE cterm=BOLD + hi MatchParen guifg=#f6f3e8 guibg=#857b6f gui=BOLD ctermfg=white ctermbg=darkgray cterm=NONE + hi Pmenu guifg=#f6f3e8 guibg=#444444 gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + hi PmenuSel guifg=#000000 guibg=#cae682 gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + hi Search guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline +endif + +" Syntax highlighting +hi Comment guifg=#7C7C7C guibg=NONE gui=NONE ctermfg=darkgray ctermbg=NONE cterm=NONE +hi String guifg=#A8FF60 guibg=NONE gui=NONE ctermfg=green ctermbg=NONE cterm=NONE +hi Number guifg=#FF73FD guibg=NONE gui=NONE ctermfg=magenta ctermbg=NONE cterm=NONE + +hi Keyword guifg=#96CBFE guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE +hi PreProc guifg=#96CBFE guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE +hi Conditional guifg=#6699CC guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE " if else end + +hi Todo guifg=#8f8f8f guibg=NONE gui=NONE ctermfg=red ctermbg=NONE cterm=NONE +hi Constant guifg=#99CC99 guibg=NONE gui=NONE ctermfg=cyan ctermbg=NONE cterm=NONE + +hi Identifier guifg=#C6C5FE guibg=NONE gui=NONE ctermfg=cyan ctermbg=NONE cterm=NONE +hi Function guifg=#FFD2A7 guibg=NONE gui=NONE ctermfg=brown ctermbg=NONE cterm=NONE +hi Type guifg=#FFFFB6 guibg=NONE gui=NONE ctermfg=yellow ctermbg=NONE cterm=NONE +hi Statement guifg=#6699CC guibg=NONE gui=NONE ctermfg=lightblue ctermbg=NONE cterm=NONE + +hi Special guifg=#E18964 guibg=NONE gui=NONE ctermfg=white ctermbg=NONE cterm=NONE +hi Delimiter guifg=#00A0A0 guibg=NONE gui=NONE ctermfg=cyan ctermbg=NONE cterm=NONE +hi Operator guifg=white guibg=NONE gui=NONE ctermfg=white ctermbg=NONE cterm=NONE + +hi link Character Constant +hi link Boolean Constant +hi link Float Number +hi link Repeat Statement +hi link Label Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link SpecialComment Special +hi link Debug Special + + +" Special for Ruby +hi rubyRegexp guifg=#B18A3D guibg=NONE gui=NONE ctermfg=brown ctermbg=NONE cterm=NONE +hi rubyRegexpDelimiter guifg=#FF8000 guibg=NONE gui=NONE ctermfg=brown ctermbg=NONE cterm=NONE +hi rubyEscape guifg=white guibg=NONE gui=NONE ctermfg=cyan ctermbg=NONE cterm=NONE +hi rubyInterpolationDelimiter guifg=#00A0A0 guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE +hi rubyControl guifg=#6699CC guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE "and break, etc +"hi rubyGlobalVariable guifg=#FFCCFF guibg=NONE gui=NONE ctermfg=lightblue ctermbg=NONE cterm=NONE "yield +hi rubyStringDelimiter guifg=#336633 guibg=NONE gui=NONE ctermfg=lightgreen ctermbg=NONE cterm=NONE +"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 + + +" Special for Java +" hi link javaClassDecl Type +hi link javaScopeDecl Identifier +hi link javaCommentTitle javaDocSeeTag +hi link javaDocTags javaDocSeeTag +hi link javaDocParam javaDocSeeTag +hi link javaDocSeeTagParam javaDocSeeTag + +hi javaDocSeeTag guifg=#CCCCCC guibg=NONE gui=NONE ctermfg=darkgray ctermbg=NONE cterm=NONE +hi javaDocSeeTag guifg=#CCCCCC guibg=NONE gui=NONE ctermfg=darkgray ctermbg=NONE cterm=NONE +"hi javaClassDecl guifg=#CCFFCC guibg=NONE gui=NONE ctermfg=white ctermbg=NONE cterm=NONE + + +" Special for XML +hi link xmlTag Keyword +hi link xmlTagName Conditional +hi link xmlEndTag Identifier + + +" Special for HTML +hi link htmlTag Keyword +hi link htmlTagName Conditional +hi link htmlEndTag Identifier + + +" Special for Javascript +hi link javaScriptNumber Number + + +" Special for Python +"hi link pythonEscape Keyword + + +" Special for CSharp +hi link csXmlTag Keyword + + +" Special for PHP diff --git a/colors/jellybeans.vim b/colors/jellybeans.vim new file mode 100644 index 0000000..83a42cf --- /dev/null +++ b/colors/jellybeans.vim @@ -0,0 +1,426 @@ +" Vim color file +" +" " __ _ _ _ " +" " \ \ ___| | |_ _| |__ ___ __ _ _ __ ___ " +" " \ \/ _ \ | | | | | _ \ / _ \/ _ | _ \/ __| " +" " /\_/ / __/ | | |_| | |_| | __/ |_| | | | \__ \ " +" " \___/ \___|_|_|\__ |____/ \___|\____|_| |_|___/ " +" " \___/ " +" +" "A colorful, dark color scheme for Vim." +" +" File: jellybeans.vim +" Maintainer: NanoTech +" Version: 1.3 +" Last Change: October 25th, 2010 +" Contributors: Daniel Herbert , +" Henry So, Jr. , +" David Liang +" +" Copyright (c) 2009-2010 NanoTech +" +" 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. + +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) + elseif l:fge && !l:bge + exec "hi ".a:group." guifg=NONE guibg=#".a:bg." ctermbg=".s:rgb(a:bg) + endif + endif + + if a:attr == "" + exec "hi ".a:group." gui=none cterm=none" + else + if a:attr == 'italic' + exec "hi ".a:group." gui=".a:attr." cterm=none" + else + exec "hi ".a:group." gui=".a:attr." cterm=".a:attr + endif + endif +endfun +" }}} + +if version >= 700 + call s:X("CursorLine","","1c1c1c","","","") + call s:X("CursorColumn","","1c1c1c","","","") + call s:X("ColorColumn","","1c1c1c","","","") + call s:X("MatchParen","ffffff","80a090","bold","","") + + call s:X("TabLine","000000","b0b8c0","italic","","Black") + call s:X("TabLineFill","9098a0","","","","") + call s:X("TabLineSel","000000","f0f0f0","italic,bold","","") + + " Auto-completion + call s:X("Pmenu","ffffff","000000","","","") + call s:X("PmenuSel","101010","eeeeee","","","") +endif + +call s:X("Visual","","404040","","","") +call s:X("Cursor","","b0d0f0","","","") + +call s:X("Normal","e8e8d3","151515","","White","") +call s:X("LineNr","605958","151515","none","Black","") +call s:X("Comment","888888","","italic","Grey","") +call s:X("Todo","808080","","bold","","") + +call s:X("StatusLine","000000","dddddd","italic","Black","White") +call s:X("StatusLineNC","ffffff","403c41","italic","White","Black") +call s:X("VertSplit","777777","403c41","italic","Black","Black") + +call s:X("Folded","a0a8b0","384048","italic","black","") +call s:X("FoldColumn","a0a8b0","384048","","","") +call s:X("SignColumn","a0a8b0","384048","","","") + +call s:X("Title","70b950","","bold","","") + +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 Normal + +call s:X("Type","ffb964","","","Yellow","") +call s:X("NonText","606060","151515","","","") + +call s:X("SpecialKey","444444","1c1c1c","","","") + +call s:X("Search","f0a0c0","302028","underline","Magenta","") + +call s:X("Directory","dad085","","","","") +call s:X("ErrorMsg","","902020","","","") +hi link Error ErrorMsg + +" Diff + +hi link diffRemoved Constant +hi link diffAdded String + +" VimDiff + +call s:X("DiffAdd","","032218","","Black","DarkGreen") +call s:X("DiffChange","","100920","","Black","DarkMagenta") +call s:X("DiffDelete","220000","220000","","DarkRed","DarkRed") +call s:X("DiffText","","000940","","","DarkRed") + +" 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 + +" Ruby + +hi link rubySharpBang Comment +call s:X("rubyClass","447799","","","DarkBlue","") +call s:X("rubyIdentifier","c6b6fe","","","","") + +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","","","","") + +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","") + +" JavaScript +hi link javaScriptValue Constant +hi link javaScriptRegexpString rubyRegexp + +" C + +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 cocoaFunction Function +hi link objcMethodName Identifier +hi link objcMethodArg Normal +hi link objcMessageName Identifier + +" Tag list +hi link TagListFileName Directory + +" 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/lucius.vim b/colors/lucius.vim index 934358b..ef08e4a 100644 --- a/colors/lucius.vim +++ b/colors/lucius.vim @@ -1,304 +1,617 @@ " Lucius vim color file " Maintainer: Jonathan Filip -" Version: 3.5 +" Version: 5.03 -set background=dark hi clear if exists("syntax_on") syntax reset endif let colors_name="lucius" +" TODO Need to add entry for conceal +" -" == Normal color == -hi Normal guifg=#e0e0e0 guibg=#202020 -hi Normal ctermfg=253 ctermbg=234 +set background=dark +if exists("g:lucius_style") + let &background=g:lucius_style +endif + +if &background == "dark" +" {{{ + + " = Dark version = + + " == Normal color == + hi Normal guifg=#e0e0e0 guibg=#202020 + hi Normal ctermfg=253 ctermbg=234 -" == Comments == -hi Comment guifg=#606060 gui=none -hi Comment ctermfg=240 cterm=none + " == Comments == + hi Comment guifg=#606060 gui=none + hi Comment ctermfg=240 cterm=none -" == Constants == -" any constant -hi Constant guifg=#70c0d8 gui=none -hi Constant ctermfg=74 cterm=none -" strings -hi String guifg=#80c0d8 gui=none -hi String ctermfg=110 cterm=none -" character constant -hi Character guifg=#80c0d8 gui=none -hi Character ctermfg=110 cterm=none -" numbers decimal/hex -hi Number guifg=#70c0d8 gui=none -hi Number ctermfg=74 cterm=none -" true, false -hi Boolean guifg=#70c0d8 gui=none -hi Boolean ctermfg=74 cterm=none -" float -hi Float guifg=#70c0d8 gui=none -hi Float ctermfg=74 cterm=none + " == Constants == + " any constant + hi Constant guifg=#70c0d8 gui=none + hi Constant ctermfg=74 cterm=none + hi ConstantBold guifg=#70c0d8 gui=bold + hi ConstantBold ctermfg=74 cterm=bold + " strings + hi String guifg=#80c0d8 gui=none + hi String ctermfg=110 cterm=none + " character constant + hi Character guifg=#80c0d8 gui=none + hi Character ctermfg=110 cterm=none + " numbers decimal/hex + hi Number guifg=#70c0d8 gui=none + hi Number ctermfg=74 cterm=none + " true, false + hi Boolean guifg=#70c0d8 gui=none + hi Boolean ctermfg=74 cterm=none + " float + hi Float guifg=#70c0d8 gui=none + hi Float ctermfg=74 cterm=none -" == Identifiers == -" any variable name -hi Identifier guifg=#86c6b6 gui=none -hi Identifier ctermfg=116 cterm=none -" function, method, class -hi Function guifg=#86c6b6 gui=none -hi Function ctermfg=116 cterm=none + " == Identifiers == + " any variable name + hi Identifier guifg=#86c6b6 gui=none + hi Identifier ctermfg=116 cterm=none + hi IdentifierBold guifg=#86c6b6 gui=bold + hi IdentifierBold ctermfg=116 cterm=bold + " function, method, class + hi Function guifg=#86c6b6 gui=none + hi Function ctermfg=116 cterm=none -" == Statements == -" any statement -hi Statement guifg=#b3d38c gui=none -hi Statement ctermfg=150 cterm=none -" if, then, else -hi Conditional guifg=#b3d38c gui=none -hi Conditional ctermfg=150 cterm=none -" try, catch, throw, raise -hi Exception guifg=#b3d38c gui=none -hi Exception ctermfg=150 cterm=none -" for, while, do -hi Repeat guifg=#b3d38c gui=none -hi Repeat ctermfg=150 cterm=none -" case, default -hi Label guifg=#b3d38c gui=none -hi Label ctermfg=150 cterm=none -" sizeof, +, * -hi Operator guifg=#b3d38c gui=none -hi Operator ctermfg=150 cterm=none -" any other keyword -hi Keyword guifg=#b3d38c gui=none -hi Keyword ctermfg=150 cterm=none + " == Statements == + " any statement + hi Statement guifg=#b3d38c gui=none + hi Statement ctermfg=150 cterm=none + hi StatementBold guifg=#b3d38c gui=bold + hi StatementBold ctermfg=150 cterm=bold + " if, then, else + hi Conditional guifg=#b3d38c gui=none + hi Conditional ctermfg=150 cterm=none + " try, catch, throw, raise + hi Exception guifg=#b3d38c gui=none + hi Exception ctermfg=150 cterm=none + " for, while, do + hi Repeat guifg=#b3d38c gui=none + hi Repeat ctermfg=150 cterm=none + " case, default + hi Label guifg=#b3d38c gui=none + hi Label ctermfg=150 cterm=none + " sizeof, +, * + hi Operator guifg=#b3d38c gui=none + hi Operator ctermfg=150 cterm=none + " any other keyword + hi Keyword guifg=#b3d38c gui=none + hi Keyword ctermfg=150 cterm=none -" == Preprocessor == -" generic preprocessor -hi PreProc guifg=#e0e8b0 gui=none -hi PreProc ctermfg=187 cterm=none -" #include -hi Include guifg=#e0e8b0 gui=none -hi Include ctermfg=187 cterm=none -" #define -hi Define guifg=#e0e8b0 gui=none -hi Define ctermfg=187 cterm=none -" same as define -hi Macro guifg=#e0e8b0 gui=none -hi Macro ctermfg=187 cterm=none -" #if, #else, #endif -hi PreCondit guifg=#e0e8b0 gui=none -hi PreCondit ctermfg=187 cterm=none + " == Preprocessor == + " generic preprocessor + hi PreProc guifg=#e0e8b0 gui=none + hi PreProc ctermfg=187 cterm=none + hi PreProcBold guifg=#e0e8b0 gui=bold + hi PreProcBold ctermfg=187 cterm=bold + " #include + hi Include guifg=#e0e8b0 gui=none + hi Include ctermfg=187 cterm=none + " #define + hi Define guifg=#e0e8b0 gui=none + hi Define ctermfg=187 cterm=none + " same as define + hi Macro guifg=#e0e8b0 gui=none + hi Macro ctermfg=187 cterm=none + " #if, #else, #endif + hi PreCondit guifg=#e0e8b0 gui=none + hi PreCondit ctermfg=187 cterm=none -" == Types == -" int, long, char -hi Type guifg=#90d0a0 gui=none -hi Type ctermfg=115 cterm=none -" static, register, volative -hi StorageClass guifg=#90d0a0 gui=none -hi StorageClass ctermfg=115 cterm=none -" struct, union, enum -hi Structure guifg=#90d0a0 gui=none -hi Structure ctermfg=115 cterm=none -" typedef -hi Typedef guifg=#90d0a0 gui=none -hi Typedef ctermfg=115 cterm=none + " == Types == + " int, long, char + hi Type guifg=#90d0a0 gui=none + hi Type ctermfg=115 cterm=none + hi TypeBold guifg=#90d0a0 gui=bold + hi TypeBold ctermfg=115 cterm=bold + " static, register, volative + hi StorageClass guifg=#90d0a0 gui=none + hi StorageClass ctermfg=115 cterm=none + " struct, union, enum + hi Structure guifg=#90d0a0 gui=none + hi Structure ctermfg=115 cterm=none + " typedef + hi Typedef guifg=#90d0a0 gui=none + hi Typedef ctermfg=115 cterm=none -" == Special == -" any special symbol -hi Special guifg=#b0a0c0 gui=none -hi Special ctermfg=182 cterm=none -" special character in a constant -hi SpecialChar guifg=#b0a0c0 gui=none -hi SpecialChar ctermfg=182 cterm=none -" things you can CTRL-] -hi Tag guifg=#b0a0c0 gui=none -hi Tag ctermfg=182 cterm=none -" character that needs attention -hi Delimiter guifg=#b0a0c0 gui=none -hi Delimiter ctermfg=182 cterm=none -" special things inside a comment -hi SpecialComment guifg=#b0a0c0 gui=none -hi SpecialComment ctermfg=182 cterm=none -" debugging statements -hi Debug guifg=#b0a0c0 guibg=NONE gui=none -hi Debug ctermfg=182 ctermbg=NONE cterm=none + " == Special == + " any special symbol + hi Special guifg=#b0a0c0 gui=none + hi Special ctermfg=182 cterm=none + hi SpecialBold guifg=#b0a0c0 gui=bold + hi SpecialBold ctermfg=182 cterm=bold + " special character in a constant + hi SpecialChar guifg=#b0a0c0 gui=none + hi SpecialChar ctermfg=182 cterm=none + " things you can CTRL-] + hi Tag guifg=#b0a0c0 gui=none + hi Tag ctermfg=182 cterm=none + " character that needs attention + hi Delimiter guifg=#b0a0c0 gui=none + hi Delimiter ctermfg=182 cterm=none + " special things inside a comment + hi SpecialComment guifg=#b0a0c0 gui=none + hi SpecialComment ctermfg=182 cterm=none + " debugging statements + hi Debug guifg=#b0a0c0 guibg=NONE gui=none + hi Debug ctermfg=182 ctermbg=NONE cterm=none -" == Text Markup == -" text that stands out, html links -hi Underlined guifg=fg gui=underline -hi Underlined ctermfg=fg cterm=underline -" any erroneous construct -hi Error guifg=#e37170 guibg=#432323 gui=none -hi Error ctermfg=167 ctermbg=236 cterm=none -" todo, fixme, note, xxx -hi Todo guifg=#e0e090 guibg=NONE gui=underline -hi Todo ctermfg=186 ctermbg=NONE cterm=underline -" match parenthesis, brackets -hi MatchParen guifg=#00ff00 guibg=NONE gui=bold -hi MatchParen ctermfg=46 ctermbg=NONE cterm=bold -" the '~' and '@' and showbreak, '>' double wide char doesn't fit on line -hi NonText guifg=#404040 gui=none -hi NonText ctermfg=238 cterm=none -" meta and special keys used with map, unprintable characters -hi SpecialKey guifg=#405060 -hi SpecialKey ctermfg=239 -" titles for output from :set all, :autocmd, etc -hi Title guifg=#62bdde gui=none -hi Title ctermfg=74 cterm=none + " == Text Markup == + " text that stands out, html links + hi Underlined guifg=fg gui=underline + hi Underlined ctermfg=fg cterm=underline + " any erroneous construct + hi Error guifg=#e37170 guibg=#432323 gui=none + hi Error ctermfg=167 ctermbg=236 cterm=none + " todo, fixme, note, xxx + hi Todo guifg=#e0e090 guibg=NONE gui=underline + hi Todo ctermfg=186 ctermbg=NONE cterm=underline + " match parenthesis, brackets + hi MatchParen guifg=#00ff00 guibg=NONE gui=bold + hi MatchParen ctermfg=46 ctermbg=NONE cterm=bold + " the '~' and '@' and showbreak, '>' double wide char doesn't fit on line + hi NonText guifg=#404040 gui=none + hi NonText ctermfg=238 cterm=none + " meta and special keys used with map, unprintable characters + hi SpecialKey guifg=#405060 + hi SpecialKey ctermfg=239 + " titles for output from :set all, :autocmd, etc + hi Title guifg=#62bdde gui=none + hi Title ctermfg=74 cterm=none -" == Ignore == -" left blank, hidden -hi Ignore guifg=bg -hi Ignore ctermfg=bg + " == Ignore == + " left blank, hidden + hi Ignore guifg=bg + hi Ignore ctermfg=bg -" == Text Selection == -" character under the cursor -hi Cursor guifg=bg guibg=#a3e3ed -hi Cursor ctermfg=bg ctermbg=153 -" like cursor, but used when in IME mode -hi CursorIM guifg=bg guibg=#96cdcd -hi CursorIM ctermfg=bg ctermbg=116 -" cursor column -hi CursorColumn guifg=NONE guibg=#404448 gui=none -hi CursorColumn ctermfg=NONE ctermbg=236 cterm=none -" cursor line/row -hi CursorLine gui=NONE guibg=#404448 gui=none -hi CursorLine cterm=NONE ctermbg=236 cterm=none -" visual mode selection -hi Visual guifg=NONE guibg=#364458 -hi Visual ctermfg=NONE ctermbg=24 -" visual mode selection when vim is not owning the selection (x11 only) -hi VisualNOS guifg=fg gui=underline -hi VisualNOS ctermfg=fg cterm=underline -" highlight incremental search text; also highlight text replaced with :s///c -hi IncSearch guifg=#66ffff gui=reverse -hi IncSearch ctermfg=87 cterm=reverse -" hlsearch (last search pattern), also used for quickfix -hi Search guibg=#ffaa33 gui=none -hi Search ctermbg=214 cterm=none + " == Text Selection == + " character under the cursor + hi Cursor guifg=bg guibg=#a3e3ed + hi Cursor ctermfg=bg ctermbg=153 + " like cursor, but used when in IME mode + hi CursorIM guifg=bg guibg=#96cdcd + hi CursorIM ctermfg=bg ctermbg=116 + " cursor column + hi CursorColumn guifg=NONE guibg=#404448 gui=none + hi CursorColumn ctermfg=NONE ctermbg=236 cterm=none + " cursor line/row + hi CursorLine guifg=NONE guibg=#404448 gui=none + hi CursorLine ctermfg=NONE ctermbg=236 cterm=none + " visual mode selection + hi Visual guifg=NONE guibg=#364458 + hi Visual ctermfg=NONE ctermbg=24 + " visual mode selection when vim is not owning the selection (x11 only) + hi VisualNOS guifg=fg gui=underline + hi VisualNOS ctermfg=fg cterm=underline + " highlight incremental search text; also highlight text replaced with :s///c + hi IncSearch guifg=#66ffff gui=reverse + hi IncSearch ctermfg=87 cterm=reverse + " hlsearch (last search pattern), also used for quickfix + hi Search guibg=#ffaa33 gui=none + hi Search ctermbg=214 cterm=none -" == UI == -" normal item in popup -hi Pmenu guifg=#e0e0e0 guibg=#303840 gui=none -hi Pmenu ctermfg=253 ctermbg=233 cterm=none -" selected item in popup -hi PmenuSel guifg=#cae682 guibg=#505860 gui=none -hi PmenuSel ctermfg=186 ctermbg=237 cterm=none -" scrollbar in popup -hi PMenuSbar guibg=#505860 gui=none -hi PMenuSbar ctermbg=59 cterm=none -" thumb of the scrollbar in the popup -hi PMenuThumb guibg=#808890 gui=none -hi PMenuThumb ctermbg=102 cterm=none -" status line for current window -hi StatusLine guifg=#e0e0e0 guibg=#363946 gui=bold -hi StatusLine ctermfg=254 ctermbg=237 cterm=bold -" status line for non-current windows -hi StatusLineNC guifg=#767986 guibg=#363946 gui=none -hi StatusLineNC ctermfg=244 ctermbg=237 cterm=none -" tab pages line, not active tab page label -hi TabLine guifg=#b6bf98 guibg=#363946 gui=none -hi TabLine ctermfg=244 ctermbg=236 cterm=none -" tab pages line, where there are no labels -hi TabLineFill guifg=#cfcfaf guibg=#363946 gui=none -hi TabLineFill ctermfg=187 ctermbg=236 cterm=none -" tab pages line, active tab page label -hi TabLineSel guifg=#efefef guibg=#414658 gui=bold -hi TabLineSel ctermfg=254 ctermbg=236 cterm=bold -" column separating vertically split windows -hi VertSplit guifg=#777777 guibg=#363946 gui=none -hi VertSplit ctermfg=242 ctermbg=237 cterm=none -" line used for closed folds -hi Folded guifg=#d0e0f0 guibg=#202020 gui=none -hi Folded ctermfg=117 ctermbg=235 cterm=none -" column on side used to indicated open and closed folds -hi FoldColumn guifg=#c0c0d0 guibg=#363946 gui=none -hi FoldColumn ctermfg=117 ctermbg=238 cterm=none + " == UI == + " normal item in popup + hi Pmenu guifg=#e0e0e0 guibg=#303840 gui=none + hi Pmenu ctermfg=253 ctermbg=233 cterm=none + " selected item in popup + hi PmenuSel guifg=#cae682 guibg=#505860 gui=none + hi PmenuSel ctermfg=186 ctermbg=237 cterm=none + " scrollbar in popup + hi PMenuSbar guibg=#505860 gui=none + hi PMenuSbar ctermbg=59 cterm=none + " thumb of the scrollbar in the popup + hi PMenuThumb guibg=#808890 gui=none + hi PMenuThumb ctermbg=102 cterm=none + " status line for current window + hi StatusLine guifg=#e0e0e0 guibg=#363946 gui=bold + hi StatusLine ctermfg=254 ctermbg=237 cterm=bold + " status line for non-current windows + hi StatusLineNC guifg=#767986 guibg=#363946 gui=none + hi StatusLineNC ctermfg=244 ctermbg=237 cterm=none + " tab pages line, not active tab page label + hi TabLine guifg=#b6bf98 guibg=#363946 gui=none + hi TabLine ctermfg=244 ctermbg=236 cterm=none + " tab pages line, where there are no labels + hi TabLineFill guifg=#cfcfaf guibg=#363946 gui=none + hi TabLineFill ctermfg=187 ctermbg=236 cterm=none + " tab pages line, active tab page label + hi TabLineSel guifg=#efefef guibg=#414658 gui=bold + hi TabLineSel ctermfg=254 ctermbg=236 cterm=bold + " column separating vertically split windows + hi VertSplit guifg=#777777 guibg=#363946 gui=none + hi VertSplit ctermfg=242 ctermbg=237 cterm=none + " line used for closed folds + hi Folded guifg=#d0e0f0 guibg=#202020 gui=none + hi Folded ctermfg=117 ctermbg=235 cterm=none + " column on side used to indicated open and closed folds + hi FoldColumn guifg=#c0c0d0 guibg=#363946 gui=none + hi FoldColumn ctermfg=117 ctermbg=238 cterm=none -" == Spelling == -" word not recognized -hi SpellBad guisp=#ee0000 gui=undercurl -hi SpellBad ctermbg=196 cterm=undercurl -" word not capitalized -hi SpellCap guisp=#eeee00 gui=undercurl -hi SpellCap ctermbg=226 cterm=undercurl -" rare word -hi SpellRare guisp=#ffa500 gui=undercurl -hi SpellRare ctermbg=214 cterm=undercurl -" wrong spelling for selected region -hi SpellLocal guisp=#ffa500 gui=undercurl -hi SpellLocal ctermbg=214 cterm=undercurl + " == Spelling == + " word not recognized + hi SpellBad guisp=#ee0000 gui=undercurl + hi SpellBad ctermbg=196 cterm=undercurl + " word not capitalized + hi SpellCap guisp=#eeee00 gui=undercurl + hi SpellCap ctermbg=226 cterm=undercurl + " rare word + hi SpellRare guisp=#ffa500 gui=undercurl + hi SpellRare ctermbg=214 cterm=undercurl + " wrong spelling for selected region + hi SpellLocal guisp=#ffa500 gui=undercurl + hi SpellLocal ctermbg=214 cterm=undercurl -" == Diff == -" added line -hi DiffAdd guifg=#80a090 guibg=#313c36 gui=none -hi DiffAdd ctermfg=fg ctermbg=22 cterm=none -" changed line -hi DiffChange guifg=NONE guibg=#4a343a gui=none -hi DiffChange ctermfg=fg ctermbg=52 cterm=none -" deleted line -hi DiffDelete guifg=#6c6661 guibg=#3c3631 gui=none -hi DiffDelete ctermfg=fg ctermbg=58 cterm=none -" changed text within line -hi DiffText guifg=#f05060 guibg=#4a343a gui=bold -hi DiffText ctermfg=203 ctermbg=52 cterm=bold + " == Diff == + " added line + hi DiffAdd guifg=#80a090 guibg=#313c36 gui=none + hi DiffAdd ctermfg=fg ctermbg=22 cterm=none + " changed line + hi DiffChange guifg=NONE guibg=#4a343a gui=none + hi DiffChange ctermfg=fg ctermbg=52 cterm=none + " deleted line + hi DiffDelete guifg=#6c6661 guibg=#3c3631 gui=none + hi DiffDelete ctermfg=fg ctermbg=58 cterm=none + " changed text within line + hi DiffText guifg=#f05060 guibg=#4a343a gui=bold + hi DiffText ctermfg=203 ctermbg=52 cterm=bold -" == Misc == -" directory names and other special names in listings -hi Directory guifg=#c0e0b0 gui=none -hi Directory ctermfg=151 cterm=none -" error messages on the command line -hi ErrorMsg guifg=#ee0000 guibg=NONE gui=none -hi ErrorMsg ctermfg=196 ctermbg=NONE cterm=none -" columns where signs are displayed (used in IDEs) -hi SignColumn guifg=#9fafaf guibg=#181818 gui=none -hi SignColumn ctermfg=145 ctermbg=233 cterm=none -" line numbers -hi LineNr guifg=#818698 guibg=#363946 -hi LineNr ctermfg=245 ctermbg=237 -" the 'more' prompt when output takes more than one line -hi MoreMsg guifg=#2e8b57 gui=none -hi MoreMsg ctermfg=29 cterm=none -" text showing what mode you are in -hi ModeMsg guifg=#76d5f8 guibg=NONE gui=none -hi ModeMsg ctermfg=117 ctermbg=NONE cterm=none -" the hit-enter prompt (show more output) and yes/no questions -hi Question guifg=fg gui=none -hi Question ctermfg=fg cterm=none -" warning messages -hi WarningMsg guifg=#e5786d gui=none -hi WarningMsg ctermfg=173 cterm=none -" current match in the wildmenu completion -hi WildMenu guifg=#cae682 guibg=#363946 gui=bold,underline -hi WildMenu ctermfg=16 ctermbg=186 cterm=bold -" color column highlighting -hi ColorColumn guifg=NONE guibg=#403630 gui=none -hi ColorColumn ctermfg=NONE ctermbg=95 cterm=none + " == Misc == + " directory names and other special names in listings + hi Directory guifg=#c0e0b0 gui=none + hi Directory ctermfg=151 cterm=none + " error messages on the command line + hi ErrorMsg guifg=#ee0000 guibg=NONE gui=none + hi ErrorMsg ctermfg=196 ctermbg=NONE cterm=none + " columns where signs are displayed (used in IDEs) + hi SignColumn guifg=#9fafaf guibg=#181818 gui=none + hi SignColumn ctermfg=145 ctermbg=233 cterm=none + " line numbers + hi LineNr guifg=#818698 guibg=#363946 + hi LineNr ctermfg=245 ctermbg=237 + " the 'more' prompt when output takes more than one line + hi MoreMsg guifg=#2e8b57 gui=none + hi MoreMsg ctermfg=29 cterm=none + " text showing what mode you are in + hi ModeMsg guifg=#76d5f8 guibg=NONE gui=none + hi ModeMsg ctermfg=117 ctermbg=NONE cterm=none + " the hit-enter prompt (show more output) and yes/no questions + hi Question guifg=fg gui=none + hi Question ctermfg=fg cterm=none + " warning messages + hi WarningMsg guifg=#e5786d gui=none + hi WarningMsg ctermfg=173 cterm=none + " current match in the wildmenu completion + hi WildMenu guifg=#cae682 guibg=#363946 gui=bold,underline + hi WildMenu ctermfg=16 ctermbg=186 cterm=bold + " color column highlighting + hi ColorColumn guifg=NONE guibg=#403630 gui=none + hi ColorColumn ctermfg=NONE ctermbg=95 cterm=none + +" }}} +elseif &background == 'light' +" {{{ + + " = Light version = + + " == Normal color == + hi Normal guifg=#000000 guibg=#fafafa + hi Normal ctermfg=16 ctermbg=231 + + + " == Comments == + hi Comment guifg=#909090 gui=none + hi Comment ctermfg=246 cterm=none + + + " == Constants == + " any constant + hi Constant guifg=#208000 gui=none + hi Constant ctermfg=28 cterm=none + hi ConstantBold guifg=#208000 gui=bold + hi ConstantBold ctermfg=28 cterm=bold + " strings + hi String guifg=#208000 gui=none + hi String ctermfg=28 cterm=none + " character constant + hi Character guifg=#208000 gui=none + hi Character ctermfg=28 cterm=none + " numbers decimal/hex + hi Number guifg=#208000 gui=none + hi Number ctermfg=28 cterm=none + " true, false + hi Boolean guifg=#208000 gui=none + hi Boolean ctermfg=28 cterm=none + " float + hi Float guifg=#208000 gui=none + hi Float ctermfg=28 cterm=none + + + " == Identifiers == + " any variable name + hi Identifier guifg=#008060 gui=none + hi Identifier ctermfg=29 cterm=none + hi IdentifierBold guifg=#008060 gui=bold + hi IdentifierBold ctermfg=29 cterm=bold + " function, method, class + hi Function guifg=#008060 gui=none + hi Function ctermfg=29 cterm=none + + + " == Statements == + " any statement + hi Statement guifg=#0050b0 gui=none + hi Statement ctermfg=25 cterm=none + hi StatementBold guifg=#0050b0 gui=bold + hi StatementBold ctermfg=25 cterm=bold + " if, then, else + hi Conditional guifg=#0050b0 gui=none + hi Conditional ctermfg=25 cterm=none + " try, catch, throw, raise + hi Exception guifg=#0050b0 gui=none + hi Exception ctermfg=25 cterm=none + " for, while, do + hi Repeat guifg=#0050b0 gui=none + hi Repeat ctermfg=25 cterm=none + " case, default + hi Label guifg=#0050b0 gui=none + hi Label ctermfg=25 cterm=none + " sizeof, +, * + hi Operator guifg=#0050b0 gui=none + hi Operator ctermfg=25 cterm=none + " any other keyword + hi Keyword guifg=#0050b0 gui=none + hi Keyword ctermfg=25 cterm=none + + + " == Preprocessor == + " generic preprocessor + hi PreProc guifg=#b07000 gui=none + hi PreProc ctermfg=130 cterm=none + hi PreProcBold guifg=#b07000 gui=bold + hi PreProcBold ctermfg=130 cterm=bold + " #include + hi Include guifg=#b07000 gui=none + hi Include ctermfg=130 cterm=none + " #define + hi Define guifg=#b07000 gui=none + hi Define ctermfg=130 cterm=none + " same as define + hi Macro guifg=#b07000 gui=none + hi Macro ctermfg=130 cterm=none + " #if, #else, #endif + hi PreCondit guifg=#b07000 gui=none + hi PreCondit ctermfg=130 cterm=none + + + " == Types == + " int, long, char + hi Type guifg=#007090 gui=none + hi Type ctermfg=24 cterm=none + hi TypeBold guifg=#007090 gui=bold + hi TypeBold ctermfg=24 cterm=bold + " static, register, volative + hi StorageClass guifg=#007090 gui=none + hi StorageClass ctermfg=24 cterm=none + " struct, union, enum + hi Structure guifg=#007090 gui=none + hi Structure ctermfg=24 cterm=none + " typedef + hi Typedef guifg=#007090 gui=none + hi Typedef ctermfg=24 cterm=none + + + " == Special == + " any special symbol + hi Special guifg=#601090 gui=none + hi Special ctermfg=54 cterm=none + hi SpecialBold guifg=#601090 gui=bold + hi SpecialBold ctermfg=54 cterm=bold + " special character in a constant + hi SpecialChar guifg=#601090 gui=none + hi SpecialChar ctermfg=54 cterm=none + " things you can CTRL-] + hi Tag guifg=#601090 gui=none + hi Tag ctermfg=54 cterm=none + " character that needs attention + hi Delimiter guifg=#601090 gui=none + hi Delimiter ctermfg=54 cterm=none + " special things inside a comment + hi SpecialComment guifg=#601090 gui=none + hi SpecialComment ctermfg=54 cterm=none + " debugging statements + hi Debug guifg=#601090 guibg=NONE gui=none + hi Debug ctermfg=54 ctermbg=NONE cterm=none + + + " == Text Markup == + " text that stands out, html links + hi Underlined guifg=fg gui=underline + hi Underlined ctermfg=fg cterm=underline + " any erroneous construct + hi Error guifg=#c82828 guibg=#e8b8b8 gui=none + hi Error ctermfg=9 ctermbg=181 cterm=none + " todo, fixme, note, xxx + hi Todo guifg=#907010 guibg=#f0f090 gui=underline + hi Todo ctermfg=94 ctermbg=229 cterm=underline + " match parenthesis, brackets + hi MatchParen guifg=NONE guibg=#a0f0b0 gui=none + hi MatchParen ctermfg=NONE ctermbg=157 cterm=bold + " the '~' and '@' and showbreak, '>' double wide char doesn't fit on line + hi NonText guifg=#b0c0d0 gui=none + hi NonText ctermfg=146 cterm=none + " meta and special keys used with map, unprintable characters + hi SpecialKey guifg=#b0d0c0 + hi SpecialKey ctermfg=151 + " titles for output from :set all, :autocmd, etc + hi Title guifg=#0080e0 gui=none + hi Title ctermfg=32 cterm=none + + + " == Ignore == + " left blank, hidden + hi Ignore guifg=bg + hi Ignore ctermfg=bg + + + " == Text Selection == + " character under the cursor + hi Cursor guifg=bg guibg=#406090 + hi Cursor ctermfg=bg ctermbg=25 + " like cursor, but used when in IME mode + hi CursorIM guifg=bg guibg=#96cdcd + hi CursorIM ctermfg=bg ctermbg=116 + " cursor column + hi CursorColumn guifg=NONE guibg=#e0e0e0 gui=none + hi CursorColumn ctermfg=NONE ctermbg=254 cterm=none + " cursor line/row + hi CursorLine guifg=NONE guibg=#e0e0e0 gui=none + hi CursorLine ctermfg=NONE ctermbg=254 cterm=none + " visual mode selection + hi Visual guifg=NONE guibg=#c0d8f0 + hi Visual ctermfg=NONE ctermbg=153 + " visual mode selection when vim is not owning the selection (x11 only) + hi VisualNOS guifg=fg gui=underline + hi VisualNOS ctermfg=fg cterm=underline + " highlight incremental search text; also highlight text replaced with :s///c + hi IncSearch guifg=NONE guibg=#a0e0e0 gui=none + hi IncSearch ctermfg=NONE ctermbg=152 cterm=none + " hlsearch (last search pattern), also used for quickfix + hi Search guibg=#f0b060 gui=none + hi Search ctermbg=215 cterm=none + + + " == UI == + " normal item in popup + hi Pmenu guifg=#000000 guibg=#e0e8f0 gui=none + hi Pmenu ctermfg=NONE ctermbg=254 cterm=none + " selected item in popup + hi PmenuSel guifg=#007090 guibg=#c0c8d0 gui=none + hi PmenuSel ctermfg=24 ctermbg=251 cterm=none + " scrollbar in popup + hi PMenuSbar guibg=#d0d8e0 gui=none + hi PMenuSbar ctermbg=188 cterm=none + " thumb of the scrollbar in the popup + hi PMenuThumb guibg=#a0a8c0 gui=none + hi PMenuThumb ctermbg=145 cterm=none + " status line for current window + hi StatusLine guifg=#000000 guibg=#b0c0d0 gui=bold + hi StatusLine ctermfg=16 ctermbg=146 cterm=bold + " status line for non-current windows + hi StatusLineNC guifg=#607080 guibg=#b0c0d0 gui=none + hi StatusLineNC ctermfg=60 ctermbg=146 cterm=none + " tab pages line, not active tab page label + hi TabLine guifg=#000000 guibg=#b0c0d0 gui=none + hi TabLine ctermfg=16 ctermbg=146 cterm=none + " tab pages line, where there are no labels + hi TabLineFill guifg=#606060 guibg=#b0c0d0 gui=none + hi TabLineFill ctermfg=59 ctermbg=146 cterm=none + " tab pages line, active tab page label + hi TabLineSel guifg=#007090 guibg=#b0c0d0 gui=bold + hi TabLineSel ctermfg=24 ctermbg=146 cterm=bold + " column separating vertically split windows + hi VertSplit guifg=#708090 guibg=#b0c0d0 gui=none + hi VertSplit ctermfg=66 ctermbg=146 cterm=none + " line used for closed folds + hi Folded guifg=#0090b0 guibg=#e0e8e8 gui=none + hi Folded ctermfg=31 ctermbg=254 cterm=none + " column on side used to indicated open and closed folds + hi FoldColumn guifg=#0090b0 guibg=#e0e8e8 gui=none + hi FoldColumn ctermfg=31 ctermbg=254 cterm=none + + + " == Spelling == + " word not recognized + hi SpellBad guisp=#ee0000 gui=undercurl + hi SpellBad ctermbg=210 cterm=undercurl + " word not capitalized + hi SpellCap guisp=#eeee00 gui=undercurl + hi SpellCap ctermbg=227 cterm=undercurl + " rare word + hi SpellRare guisp=#ffa500 gui=undercurl + hi SpellRare ctermbg=221 cterm=undercurl + " wrong spelling for selected region + hi SpellLocal guisp=#ffa500 gui=undercurl + hi SpellLocal ctermbg=221 cterm=undercurl + + + " == Diff == + " added line + hi DiffAdd guifg=#205020 guibg=#a0d0a0 gui=none + hi DiffAdd ctermfg=fg ctermbg=151 cterm=none + " changed line + hi DiffChange guifg=#000000 guibg=#d0a0a0 gui=none + hi DiffChange ctermfg=fg ctermbg=181 cterm=none + " deleted line + hi DiffDelete guifg=#606060 guibg=#d0c0a0 gui=none + hi DiffDelete ctermfg=fg ctermbg=181 cterm=none + " changed text within line + hi DiffText guifg=#a04040 guibg=#d0a0a0 gui=bold + hi DiffText ctermfg=131 ctermbg=181 cterm=bold + + + " == Misc == + " directory names and other special names in listings + hi Directory guifg=#00a080 gui=none + hi Directory ctermfg=36 cterm=none + " error messages on the command line + hi ErrorMsg guifg=#aa0000 guibg=NONE gui=none + hi ErrorMsg ctermfg=124 ctermbg=NONE cterm=none + " columns where signs are displayed (used in IDEs) + hi SignColumn guifg=#708090 guibg=#f8f8f8 gui=none + hi SignColumn ctermfg=66 ctermbg=231 cterm=none + " line numbers + hi LineNr guifg=#2060a0 guibg=#b0c0d0 + hi LineNr ctermfg=4 ctermbg=146 + " the 'more' prompt when output takes more than one line + hi MoreMsg guifg=#209020 gui=none + hi MoreMsg ctermfg=28 cterm=none + " text showing what mode you are in + hi ModeMsg guifg=#2060c0 guibg=NONE gui=none + hi ModeMsg ctermfg=4 ctermbg=NONE cterm=none + " the hit-enter prompt (show more output) and yes/no questions + hi Question guifg=fg gui=none + hi Question ctermfg=fg cterm=none + " warning messages + hi WarningMsg guifg=#e06020 gui=none + hi WarningMsg ctermfg=166 cterm=none + " current match in the wildmenu completion + hi WildMenu guifg=#007090 guibg=#b0c0d0 gui=bold,underline + hi WildMenu ctermfg=26 ctermbg=146 cterm=bold + " color column highlighting + hi ColorColumn guifg=NONE guibg=#f0e0d0 gui=none + hi ColorColumn ctermfg=NONE ctermbg=224 cterm=none + +" }}} +endif " == Vimwiki Colors == - -hi VimwikiHeader1 guifg=#e0e8b0 gui=bold -hi VimWikiHeader1 ctermfg=187 cterm=none -hi VimwikiHeader2 guifg=#80c0d8 gui=bold -hi VimwikiHeader2 ctermfg=110 cterm=none -hi VimwikiHeader3 guifg=#b3d38c gui=bold -hi VimwikiHeader3 ctermfg=150 cterm=none -hi VimwikiHeader4 guifg=#86c6b6 gui=bold -hi VimwikiHeader4 ctermfg=116 cterm=none -hi VimwikiHeader5 guifg=#b0a0c0 gui=bold -hi VimwikiHeader5 ctermfg=182 cterm=none -hi VimwikiHeader6 guifg=#90d0a0 gui=bold -hi VimwikiHeader6 ctermfg=115 cterm=none +hi link VimwikiHeader1 PreProcBold +hi link VimwikiHeader2 ConstantBold +hi link VimwikiHeader3 StatementBold +hi link VimwikiHeader4 IdentifierBold +hi link VimwikiHeader5 SpecialBold +hi link VimwikiHeader6 TypeBold diff --git a/colors/sorcerer.vim b/colors/sorcerer.vim new file mode 100644 index 0000000..80fc2b9 --- /dev/null +++ b/colors/sorcerer.vim @@ -0,0 +1,97 @@ +" 'sorcerer.vim' -- Vim color scheme. +" Maintainer: Jeet Sukumaran +" Based on 'Mustang' by Henrique C. Alves (hcarvalhoalves@gmail.com), + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "sorcerer" + +hi Normal guifg=#c2c2b0 guibg=#202020 gui=NONE +hi ColorColumn guifg=NONE guibg=#1c1c1c +hi Cursor guifg=NONE guibg=#626262 gui=NONE +hi CursorColumn guibg=#2d2d2d +hi CursorLine guibg=#2d2d2d +hi DiffAdd guifg=#000000 guibg=#3cb371 gui=NONE +hi DiffChange guifg=#000000 guibg=#4f94cd gui=NONE +hi DiffDelete guifg=#000000 guibg=#8b3626 gui=NONE +hi DiffText guifg=#000000 guibg=#8ee5ee gui=NONE +hi Directory guifg=#1e90ff guibg=bg gui=NONE +hi ErrorMsg guifg=#ff6a6a guibg=NONE gui=bold +hi FoldColumn guifg=#68838b guibg=#4B4B4B gui=bold +hi Folded guifg=#99aacc guibg=#40403c gui=NONE +hi IncSearch guifg=#ffffff guibg=#ff4500 gui=bold +hi LineNr guifg=#686858 guibg=#000000 gui=NONE +hi MatchParen guifg=#fff000 guibg=#000000 gui=bold +hi ModeMsg guifg=#000000 guibg=#00ff00 gui=bold +hi MoreMsg guifg=#2e8b57 guibg=bg gui=bold +hi NonText guifg=#404050 guibg=bg gui=NONE + +hi Pmenu guifg=#ffffff guibg=#444444 +hi PmenuSel guifg=#000000 guibg=#b1d631 +" hi PmenuSbar guifg=#ffffff guibg=#c1cdc1 gui=NONE +" hi PmenuThumb guifg=#ffffff guibg=#838b83 gui=NONE + +hi Question guifg=#00ee00 guibg=NONE gui=bold +hi Search guifg=#000000 guibg=#d6e770 gui=bold +hi SignColumn guifg=#ffffff guibg=#cdcdb4 gui=NONE +hi SpecialKey guifg=#505060 guibg=NONE gui=NONE +hi SpellBad guisp=#ee2c2c gui=undercurl +hi SpellCap guisp=#0000ff gui=undercurl +hi SpellLocal guisp=#008b8b gui=undercurl +hi SpellRare guisp=#ff00ff gui=undercurl +hi StatusLine guifg=#000000 guibg=#808070 gui=bold +hi StatusLineNC guifg=#000000 guibg=#404c4c gui=italic +hi VertSplit guifg=#404c4c guibg=#404c4c gui=NONE +hi TabLine guifg=fg guibg=#d3d3d3 gui=underline +hi TabLineFill guifg=fg guibg=bg gui=reverse +hi TabLineSel guifg=fg guibg=bg gui=bold +hi Title guifg=#528b8b guibg=NONE gui=bold +hi Visual guifg=#000000 guibg=#6688aa gui=NONE +hi WarningMsg guifg=#ee9a00 guibg=bg gui=NONE +hi WildMenu guifg=#000000 guibg=#87ceeb gui=NONE + +" Syntax highlighting +hi Comment guifg=#707670 gui=italic +hi Boolean guifg=#ff9800 gui=NONE +hi String guifg=#779b70 gui=NONE +hi Identifier guifg=#9ebac2 gui=NONE +hi Function guifg=#faf4c6 gui=NONE +hi Type guifg=#7e8aa2 gui=NONE +hi Statement guifg=#90b0d1 gui=NONE +hi Keyword guifg=#90b0d1 gui=NONE +hi Constant guifg=#ff9800 gui=NONE +hi Number guifg=#cc8800 gui=NONE +hi Special guifg=#719611 gui=NONE +hi PreProc guifg=#528b8b gui=NONE +hi Todo guifg=#8f6f8f guibg=#202020 gui=italic,underline,bold + +" Diff +hi diffOldFile guifg=#da70d6 guibg=NONE gui=italic +hi diffNewFile guifg=#ffff00 guibg=NONE gui=italic +hi diffFile guifg=#ffa500 guibg=NONE gui=italic +hi diffLine guifg=#ff00ff guibg=NONE gui=italic +hi link diffOnly Constant +hi link diffIdentical Constant +hi link diffDiffer Constant +hi link diffBDiffer Constant +hi link diffIsA Constant +hi link diffNoEOL Constant +hi link diffCommon Constant +hi diffRemoved guifg=#cd5555 guibg=NONE gui=NONE +hi diffChanged guifg=#4f94cd guibg=NONE gui=NONE +hi diffAdded guifg=#00cd00 guibg=NONE gui=NONE +hi link diffSubname diffLine +hi link diffComment Comment + +" Python +hi pythonException guifg=#90b0d1 guibg=NONE gui=NONE +hi pythonExClass guifg=#996666 guibg=NONE gui=NONE +hi pythonDecorator guifg=#888555 guibg=NONE gui=NONE +hi link pythonDecoratorFunction pythonDecorator + diff --git a/colors/vydark.vim b/colors/vydark.vim new file mode 100644 index 0000000..3269e70 --- /dev/null +++ b/colors/vydark.vim @@ -0,0 +1,84 @@ +" +" Vim colour file +" +" Maintainer: Vy-Shane Sin Fat +" Version: 1.1 +" +" This colour file is meant for GUI use. +" + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="vydark" + + +hi Normal guifg=#bbbbbb guibg=#282828 +hi Title guifg=white +hi Cursor guibg=#ffffff +hi LineNr guifg=#444455 guibg=#292929 +hi Visual guibg=#555555 +hi NonText guifg=#292929 guibg=#292929 +hi StatusLine guifg=#bbbbbb guibg=#353535 gui=none +hi StatusLineNC guifg=#777777 guibg=#353535 gui=none +hi VertSplit guifg=#353535 guibg=#353535 gui=none +hi ModeMsg guifg=#99dd99 guibg=#394439 gui=none +hi ErrorMsg guifg=#222222 guibg=#ff8888 gui=none +hi Error guifg=#ffaaaa guibg=#333333 gui=none + + +" Vim 7.x specific +if version >= 700 + hi MatchParen guibg=#364836 gui=none + hi Pmenu guifg=#bbbbbb guibg=#444444 gui=none + hi PmenuSel guifg=#222222 guibg=#99bbdd gui=none + hi PmenuSbar guifg=#494949 guibg=#494949 gui=bold + hi PmenuThumb guifg=#666666 guibg=#666666 gui=bold + hi Search guifg=#dddd99 guibg=#444433 gui=none + hi IncSearch guifg=#eeeeaa guibg=#666633 gui=bold + hi CursorLine guibg=#353535 gui=none + hi ColorColumn guibg=#252525 + hi SpellBad guisp=#774444 + hi SpellCap guisp=#774444 + hi SpellLocal guisp=#774444 + hi SpellRare guisp=#774444 +endif + + +" Syntax highlighting +hi Comment guifg=#666677 gui=none +hi Todo guifg=#8888aa guibg=#303030 gui=italic +hi Operator guifg=#bbbbbb gui=none +hi Identifier guifg=#bbbbbb gui=none +hi Statement guifg=#bbbbbb gui=none +hi Type guifg=#99bbcc gui=none +hi Constant guifg=#88cc99 gui=none +hi Conditional guifg=#99bbcc gui=none +hi Delimiter guifg=#99bbdd gui=none +hi PreProc guifg=#88ddcc gui=none +hi Special guifg=#99dd99 gui=bold +hi Keyword guifg=#bbbbbb gui=none + +hi link Function Normal +hi link Character Constant +hi link String Constant +hi link Boolean Constant +hi link Number Constant +hi link Float Number +hi link Repeat Conditional +hi link Label Statement +hi link Exception Statement +hi link Include Normal +hi link Define Type +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link SpecialComment Special +hi link Debug Special + diff --git a/colors/vylight.vim b/colors/vylight.vim new file mode 100644 index 0000000..1f10785 --- /dev/null +++ b/colors/vylight.vim @@ -0,0 +1,82 @@ +" +" Vim colour file +" +" Maintainer: Vy-Shane Sin Fat +" Last Change: 20 November 2009 +" Version: 1.1 +" +" This colour file is meant for GUI use. +" + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="vylight" + + +hi Normal guifg=#1a1a1a guibg=white +hi Title guifg=black guibg=white +hi Cursor guibg=#111111 +hi LineNr guifg=#aaaaaa guibg=#f8f8f8 +hi Visual guibg=#bbddff +hi NonText guifg=#cccccc guibg=#fafafa +hi StatusLine guifg=#222222 guibg=#eeeeee gui=none +hi StatusLineNC guifg=#666666 guibg=#eeeeee gui=none +hi VertSplit guifg=#eeeeee guibg=#eeeeee gui=none +hi ModeMsg guifg=#007050 guibg=#eeeeee gui=none +hi ErrorMsg guifg=#f03050 guibg=#eeeeee gui=none +hi Error guifg=#bb3355 guibg=white gui=none + + +" Vim 7.x specific +if version >= 700 + hi CursorLine guibg=#eeeeee gui=none + hi ColorColumn guibg=#efefef gui=none + hi MatchParen guibg=#ccffdd gui=none + hi Pmenu guifg=#60656f guibg=#f0f5ff gui=none + hi PmenuSel guifg=white guibg=#3585ef gui=bold + hi PmenuSbar guifg=#d0d5dd guibg=#e0e5ee gui=bold + hi PmenuThumb guifg=#e0e5ee guibg=#c0c5dd gui=bold + hi Search guibg=#fcfcaa gui=none + hi IncSearch guibg=#ffff33 gui=bold +endif + + +" Syntax highlighting +hi Comment guifg=#668866 gui=none +"hi Todo guifg=#225522 guibg=white gui=italic +hi Todo guifg=#446644 guibg=#ddeecc gui=italic +hi Operator guifg=#1a1a1a gui=none +hi Identifier guifg=#1a1a1a gui=none +hi Statement guifg=#0050b0 gui=none +hi Type guifg=#0050b0 gui=none +hi Constant guifg=#204070 gui=none +hi Conditional guifg=#006040 gui=none +hi Delimiter guifg=#1a1a1a gui=none +hi PreProc guifg=#007050 gui=none +hi Special guifg=#a05050 gui=none +hi Keyword guifg=#007050 gui=none + +hi link Function Normal +hi link Character Constant +hi link String Constant +hi link Boolean Constant +hi link Number Constant +hi link Float Number +hi link Repeat Conditional +hi link Label Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link SpecialComment Special +hi link Debug Special + diff --git a/colors/zenburn.vim b/colors/zenburn.vim new file mode 100644 index 0000000..86abe6c --- /dev/null +++ b/colors/zenburn.vim @@ -0,0 +1,433 @@ +" Vim color file +" Maintainer: Jani Nurminen +" Last Change: $Id: zenburn.vim,v 2.16 2010/10/24 10:55:30 slinky Exp slinky $ +" URL: http://slinky.imukuppi.org/zenburnpage/ +" License: GNU GPL +" +" Nothing too fancy, just some alien fruit salad to keep you in the zone. +" This syntax file was designed to be used with dark environments and +" low light situations. Of course, if it works during a daybright office, go +" ahead :) +" +" Owes heavily to other Vim color files! With special mentions +" to "BlackDust", "Camo" and "Desert". +" +" To install, copy to ~/.vim/colors directory. +" +" Alternatively, you can use Vimball installation: +" vim zenburn.vba +" :so % +" :q +" +" For details, see :help vimball +" +" After installation, use it with :colorscheme zenburn. +" See also :help syntax +" +" Credits: +" - Jani Nurminen - original Zenburn, maintainer +" - Steve Hall & Cream posse - higher-contrast Visual selection +" - Kurt Maier - 256 color console coloring, low and high contrast toggle, +" bug fixing +" - Charlie - spotted too bright StatusLine in non-high contrast mode +" - Pablo Castellazzi - CursorLine fix for 256 color mode +" - Tim Smith - force dark background +" - John Gabriele - spotted bad Ignore-group handling +" - Zac Thompson - spotted invisible NonText in low contrast mode +" - Christophe-Marie Duquesne - suggested making a Vimball +" - Andrew Wagner - noted the CursorColumn bug (guifg was unintentionally set), +" unify CursorColumn colour +" - Martin Langasek - clarify the license, whitespace fixes +" - Marcin Szamotulski - support autocomplete for Zenburn configuration +" parameters +" +" CONFIGURABLE PARAMETERS: +" +" You can use the default (don't set any parameters), or you can +" set some parameters to tweak the Zenburn colours. +" +" To use them, put them into your .vimrc file before loading the color scheme, +" example: +" let g:zenburn_high_Contrast=1 +" colors zenburn +" +" You can also do ":let g:zenburn" then hit Ctrl-d or Tab to scroll through the +" list of configurable parameters. +" +" * You can now set a darker background for bright environments. To activate, use: +" contrast Zenburn, use: +" +" let g:zenburn_high_Contrast = 1 +" +" * For example, Vim help files uses the Ignore-group for the pipes in tags +" like "|somelink.txt|". By default, the pipes are not visible, as they +" map to Ignore group. If you wish to enable coloring of the Ignore group, +" set the following parameter to 1. Warning, it might make some syntax files +" look strange. +" +" let g:zenburn_color_also_Ignore = 1 +" +" * To get more contrast to the Visual selection, use +" +" let g:zenburn_alternate_Visual = 1 +" +" * To use alternate colouring for Error message, use +" +" let g:zenburn_alternate_Error = 1 +" +" * The new default for Include is a duller orange. To use the original +" colouring for Include, use +" +" let g:zenburn_alternate_Include = 1 +" +" * Work-around to a Vim bug, it seems to misinterpret ctermfg and 234 and 237 +" as light values, and sets background to light for some people. If you have +" this problem, use: +" +" let g:zenburn_force_dark_Background = 1 +" +" * By default the CursorColumn is of a lighter colour. I find it more readable +" that way, but some people may want to align it with the darker CursorLine +" color, for visual uniformity. To do so, use: +" +" let g:zenburn_unified_CursorColumn = 1 +" +" Note: you can ignore this unless you use +" ":set cursorline cursorcolumn", since otherwise the effect won't be +" seen. +" +" NOTE: +" +" * To turn the parameter(s) back to defaults, use UNLET or set them to 0: +" +" unlet g:zenburn_alternate_Include +" or +" let g:zenburn_alternate_Include = 0 +" +" +" That's it, enjoy! +" +" TODO +" - Visual alternate color is broken? Try GVim >= 7.0.66 if you have trouble +" - IME colouring (CursorIM) + +" Set defaults, but keep any parameters already set by the user +if ! exists("g:zenburn_high_Contrast") + let g:zenburn_high_Contrast = 0 +endif + +if ! exists("g:zenburn_color_also_Ignore") + let g:zenburn_color_also_Ignore = 0 +endif + +if ! exists("g:zenburn_alternate_Error") + let g:zenburn_alternate_Error = 0 +endif + +if ! exists("g:zenburn_force_dark_Background") + let g:zenburn_force_dark_Background = 0 +endif + +if ! exists("g:zenburn_alternate_Visual") + let g:zenburn_alternate_Visual = 0 +endif + +if ! exists("g:zenburn_alternate_Include") + let g:zenburn_alternate_Include = 0 +endif + +if ! exists("g:zenburn_unified_CursorColumn") + let g:zenburn_unified_CursorColumn = 0 +endif +" ----------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="zenburn" + +hi Boolean guifg=#dca3a3 +hi Character guifg=#dca3a3 gui=bold +hi Comment guifg=#7f9f7f gui=italic +hi Conditional guifg=#f0dfaf gui=bold +hi Constant guifg=#dca3a3 gui=bold +hi Cursor guifg=#000d18 guibg=#8faf9f gui=bold +hi Debug guifg=#bca3a3 gui=bold +hi Define guifg=#ffcfaf gui=bold +hi Delimiter guifg=#8f8f8f +hi DiffAdd guifg=#709080 guibg=#313c36 gui=bold +hi DiffChange guibg=#333333 +hi DiffDelete guifg=#333333 guibg=#464646 +hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold +hi Directory guifg=#dcdccc gui=bold +hi ErrorMsg guifg=#80d4aa guibg=#2f2f2f gui=bold +hi Exception guifg=#c3bf9f gui=bold +hi Float guifg=#c0bed1 +hi FoldColumn guifg=#93b3a3 guibg=#3f4040 +hi Folded guifg=#93b3a3 guibg=#3f4040 +hi Function guifg=#efef8f +hi Identifier guifg=#efdcbc +hi IncSearch guibg=#f8f893 guifg=#385f38 +hi Keyword guifg=#f0dfaf gui=bold +hi Label guifg=#dfcfaf gui=underline +hi LineNr guifg=#9fafaf guibg=#262626 +hi Macro guifg=#ffcfaf gui=bold +hi ModeMsg guifg=#ffcfaf gui=none +hi MoreMsg guifg=#ffffff gui=bold +hi Number guifg=#8cd0d3 +hi Operator guifg=#f0efd0 +hi PreCondit guifg=#dfaf8f gui=bold +hi PreProc guifg=#ffcfaf gui=bold +hi Question guifg=#ffffff gui=bold +hi Repeat guifg=#ffd7a7 gui=bold +hi Search guifg=#ffffe0 guibg=#284f28 +hi SpecialChar guifg=#dca3a3 gui=bold +hi SpecialComment guifg=#82a282 gui=bold +hi Special guifg=#cfbfaf +hi SpecialKey guifg=#9ece9e +hi Statement guifg=#e3ceab gui=none +hi StatusLine guifg=#313633 guibg=#ccdc90 +hi StatusLineNC guifg=#2e3330 guibg=#88b090 +hi StorageClass guifg=#c3bf9f gui=bold +hi String guifg=#cc9393 +hi Structure guifg=#efefaf gui=bold +hi Tag guifg=#e89393 gui=bold +hi Title guifg=#efefef gui=bold +hi Todo guifg=#dfdfdf guibg=bg gui=bold +hi Typedef guifg=#dfe4cf gui=bold +hi Type guifg=#dfdfbf gui=bold +hi Underlined guifg=#dcdccc gui=underline +hi VertSplit guifg=#2e3330 guibg=#688060 +hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline +hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold +hi WildMenu guibg=#2c302d guifg=#cbecd0 gui=underline + +hi SpellBad guisp=#bc6c4c guifg=#dc8c6c +hi SpellCap guisp=#6c6c9c guifg=#8c8cbc +hi SpellRare guisp=#bc6c9c guifg=#bc8cbc +hi SpellLocal guisp=#7cac7c guifg=#9ccc9c + +" Entering Kurt zone +if &t_Co > 255 + hi Boolean ctermfg=181 + hi Character ctermfg=181 cterm=bold + hi Comment ctermfg=108 + hi Conditional ctermfg=223 cterm=bold + hi Constant ctermfg=181 cterm=bold + hi Cursor ctermfg=233 ctermbg=109 cterm=bold + hi Debug ctermfg=181 cterm=bold + hi Define ctermfg=223 cterm=bold + hi Delimiter ctermfg=245 + hi DiffAdd ctermfg=66 ctermbg=237 cterm=bold + hi DiffChange ctermbg=236 + hi DiffDelete ctermfg=236 ctermbg=238 + hi DiffText ctermfg=217 ctermbg=237 cterm=bold + hi Directory ctermfg=188 cterm=bold + hi ErrorMsg ctermfg=115 ctermbg=236 cterm=bold + hi Exception ctermfg=249 cterm=bold + hi Float ctermfg=251 + hi FoldColumn ctermfg=109 ctermbg=238 + hi Folded ctermfg=109 ctermbg=238 + hi Function ctermfg=228 + hi Identifier ctermfg=223 + hi IncSearch ctermbg=228 ctermfg=238 + hi Keyword ctermfg=223 cterm=bold + hi Label ctermfg=187 cterm=underline + hi LineNr ctermfg=248 ctermbg=235 + hi Macro ctermfg=223 cterm=bold + hi ModeMsg ctermfg=223 cterm=none + hi MoreMsg ctermfg=15 cterm=bold + hi Number ctermfg=116 + hi Operator ctermfg=230 + hi PreCondit ctermfg=180 cterm=bold + hi PreProc ctermfg=223 cterm=bold + hi Question ctermfg=15 cterm=bold + hi Repeat ctermfg=223 cterm=bold + hi Search ctermfg=230 ctermbg=236 + hi SpecialChar ctermfg=181 cterm=bold + hi SpecialComment ctermfg=108 cterm=bold + hi Special ctermfg=181 + hi SpecialKey ctermfg=151 + hi Statement ctermfg=187 ctermbg=234 cterm=none + hi StatusLine ctermfg=236 ctermbg=186 + hi StatusLineNC ctermfg=235 ctermbg=108 + hi StorageClass ctermfg=249 cterm=bold + hi String ctermfg=174 + hi Structure ctermfg=229 cterm=bold + hi Tag ctermfg=181 cterm=bold + hi Title ctermfg=7 ctermbg=234 cterm=bold + hi Todo ctermfg=108 ctermbg=234 cterm=bold + hi Typedef ctermfg=253 cterm=bold + hi Type ctermfg=187 cterm=bold + hi Underlined ctermfg=188 ctermbg=234 cterm=bold + hi VertSplit ctermfg=236 ctermbg=65 + hi VisualNOS ctermfg=236 ctermbg=210 cterm=bold + hi WarningMsg ctermfg=15 ctermbg=236 cterm=bold + hi WildMenu ctermbg=236 ctermfg=194 cterm=bold + + " spellchecking, always "bright" background + hi SpellLocal ctermfg=14 ctermbg=237 + hi SpellBad ctermfg=9 ctermbg=237 + hi SpellCap ctermfg=12 ctermbg=237 + hi SpellRare ctermfg=13 ctermbg=237 + + " pmenu + hi PMenu ctermfg=248 ctermbg=0 + hi PMenuSel ctermfg=223 ctermbg=235 + + if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast + hi Normal ctermfg=188 ctermbg=234 + hi NonText ctermfg=238 + + if exists("g:zenburn_color_also_Ignore") && g:zenburn_color_also_Ignore + hi Ignore ctermfg=238 + endif + + " hc mode, darker CursorLine, default 236 + hi CursorLine ctermbg=233 cterm=none + + if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn + hi CursorColumn ctermbg=233 cterm=none + hi ColorColumn ctermbg=233 cterm=none + else + hi CursorColumn ctermbg=235 cterm=none + hi ColorColumn ctermbg=235 cterm=none + endif + else + hi Normal ctermfg=188 ctermbg=237 + hi Cursor ctermbg=109 + hi diffadd ctermbg=237 + hi diffdelete ctermbg=238 + hi difftext ctermbg=237 + hi errormsg ctermbg=237 + hi foldcolumn ctermbg=238 + hi folded ctermbg=238 + hi incsearch ctermbg=228 + hi linenr ctermbg=238 + hi search ctermbg=238 + hi statement ctermbg=237 + hi statusline ctermbg=144 + hi statuslinenc ctermbg=108 + hi title ctermbg=237 + hi todo ctermbg=237 + hi underlined ctermbg=237 + hi vertsplit ctermbg=65 + hi visualnos ctermbg=210 + hi warningmsg ctermbg=236 + hi wildmenu ctermbg=236 + hi NonText ctermfg=240 + + if exists("g:zenburn_color_also_Ignore") && g:zenburn_color_also_Ignore + hi Ignore ctermfg=240 + endif + + " normal mode, lighter CursorLine + hi CursorLine ctermbg=238 cterm=none + + if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn + hi CursorColumn ctermbg=238 cterm=none + hi ColorColumn ctermbg=238 cterm=none + else + hi CursorColumn ctermbg=239 cterm=none + hi ColorColumn ctermbg=239 cterm=none + endif + endif + + if exists("g:zenburn_alternate_Error") && g:zenburn_alternate_Error + " use more jumpy Error + hi Error ctermfg=210 ctermbg=52 gui=bold + else + " default is something more zenburn-compatible + hi Error ctermfg=228 ctermbg=95 gui=bold + endif +endif + +if exists("g:zenburn_force_dark_Background") && g:zenburn_force_dark_Background + " Force dark background, because of a bug in VIM: VIM sets background + " automatically during "hi Normal ctermfg=X"; it misinterprets the high + " value (234 or 237 above) as a light color, and wrongly sets background to + " light. See ":help highlight" for details. + set background=dark +endif + +if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast + " use new darker background + hi Normal guifg=#dcdccc guibg=#1f1f1f + hi CursorLine guibg=#121212 gui=bold + if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn + hi CursorColumn guibg=#121212 gui=bold + hi ColorColumn guibg=#121212 gui=bold + else + hi CursorColumn guibg=#2b2b2b + hi ColorColumn guibg=#2b2b2b + endif + hi Pmenu guibg=#242424 guifg=#ccccbc + hi PMenuSel guibg=#353a37 guifg=#ccdc90 gui=bold + hi PmenuSbar guibg=#2e3330 guifg=#000000 + hi PMenuThumb guibg=#a0afa0 guifg=#040404 + hi MatchParen guifg=#f0f0c0 guibg=#383838 gui=bold + hi SignColumn guifg=#9fafaf guibg=#181818 gui=bold + hi TabLineFill guifg=#cfcfaf guibg=#181818 gui=bold + hi TabLineSel guifg=#efefef guibg=#1c1c1b gui=bold + hi TabLine guifg=#b6bf98 guibg=#181818 gui=bold + hi NonText guifg=#404040 gui=bold +else + " Original, lighter background + hi Normal guifg=#dcdccc guibg=#3f3f3f + hi CursorLine guibg=#434443 + if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn + hi CursorColumn guibg=#434343 + hi ColorColumn guibg=#434343 + else + hi CursorColumn guibg=#4f4f4f + hi ColorColumn guibg=#4f4f4f + endif + hi Pmenu guibg=#2c2e2e guifg=#9f9f9f + hi PMenuSel guibg=#242424 guifg=#d0d0a0 gui=bold + hi PmenuSbar guibg=#2e3330 guifg=#000000 + hi PMenuThumb guibg=#a0afa0 guifg=#040404 + hi MatchParen guifg=#b2b2a0 guibg=#2e2e2e gui=bold + hi SignColumn guifg=#9fafaf guibg=#343434 gui=bold + hi TabLineFill guifg=#cfcfaf guibg=#353535 gui=bold + hi TabLineSel guifg=#efefef guibg=#3a3a39 gui=bold + hi TabLine guifg=#b6bf98 guibg=#353535 gui=bold + hi NonText guifg=#5b605e gui=bold +endif + + +if exists("g:zenburn_alternate_Visual") && g:zenburn_alternate_Visual + " Visual with more contrast, thanks to Steve Hall & Cream posse + " gui=none fixes weird highlight problem in at least GVim 7.0.66, thanks to Kurt Maier + hi Visual guifg=#000000 guibg=#71d3b4 gui=none + hi VisualNOS guifg=#000000 guibg=#71d3b4 gui=none +else + " use default visual + hi Visual guifg=#233323 guibg=#71d3b4 gui=none + hi VisualNOS guifg=#233323 guibg=#71d3b4 gui=none +endif + +if exists("g:zenburn_alternate_Error") && g:zenburn_alternate_Error + " use more jumpy Error + hi Error guifg=#e37170 guibg=#664040 gui=bold +else + " default is something more zenburn-compatible + hi Error guifg=#e37170 guibg=#3d3535 gui=none +endif + +if exists("g:zenburn_alternate_Include") && g:zenburn_alternate_Include + " original setting + hi Include guifg=#ffcfaf gui=bold +else + " new, less contrasted one + hi Include guifg=#dfaf8f gui=bold +endif + +if exists("g:zenburn_color_also_Ignore") && g:zenburn_color_also_Ignore + " color the Ignore groups + " note: if you get strange coloring for your files, turn this off (unlet) + hi Ignore guifg=#545a4f +endif + +" TODO check for more obscure syntax groups that they're ok diff --git a/compiler/jsl.vim b/compiler/jsl.vim new file mode 100644 index 0000000..2d1097c --- /dev/null +++ b/compiler/jsl.vim @@ -0,0 +1,14 @@ +" Vim compiler file +" Compiler: pdf creator out of LaTeX files using rubber +if exists("current_compiler") + finish +endif + +let current_compiler = "jsl" +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +CompilerSet makeprg=jsl\ -nologo\ -nofilelisting\ -nosummary\ -nocontext\ -process\ % +CompilerSet errorformat=%f(%l):\ %m + diff --git a/doc/gundo.txt b/doc/gundo.txt new file mode 100644 index 0000000..c94f3b6 --- /dev/null +++ b/doc/gundo.txt @@ -0,0 +1,221 @@ +*gundo.txt* Graph your undo tree so you can actually USE it. + +Making's Vim's undo tree usable by humans. + +============================================================================== +CONTENTS *Gundo-contents* + + 1. Intro .......................... |GundoIntro| + 2. Usage .......................... |GundoUsage| + 3. Configuration .................. |GundoConfig| + 3.1 gundo_width ............... |gundo_width| + 3.2 gundo_preview_height ...... |gundo_preview_height| + 3.3 gundo_preview_bottom ...... |gundo_preview_bottom| + 3.4 gundo_right ............... |gundo_right| + 3.5 gundo_help ................ |gundo_help| + 3.6 gundo_disable ............. |gundo_disable| + 4. License ........................ |GundoLicense| + 5. Bugs ........................... |GundoBugs| + 6. Contributing ................... |GundoContributing| + 7. Changelog ...................... |GundoChangelog| + 8. Credits ........................ |GundoCredits| + +============================================================================== +1. Intro *GundoIntro* + +You know that Vim lets you undo changes like any text editor. What you might +not know is that it doesn't just keep a list of your changes -- it keeps +a goddamed |:undo-tree| of them. + +Say you make a change (call it X), undo that change, and then make another +change (call it Y). With most editors, change X is now gone forever. With Vim +you can get it back. + +The problem is that trying to do this in the real world is painful. Vim gives +you an |:undolist| command that shows you the leaves of the tree. Good luck +finding the change you want in that list. + +Gundo is a plugin to make browsing this ridiculously powerful undo tree less +painful. + +============================================================================== +2. Usage *GundoUsage* + +We'll get to the technical details later, but if you're a human the first +thing you need to do is add a mapping to your |:vimrc| to toggle the undo +graph: > + + nnoremap :GundoToggle + +Change the mapped key to suit your taste. We'll stick with F5 because that's +what the author uses. + +Now you can press F5 to toggle the undo graph and preview pane, which will +look something like this: > + + Undo graph File + +-----------------------------------+------------------------------------+ + | " Gundo for something.txt [1] |one | + | " j/k - move between undo states |two | + | " - revert to that state |three | + | |five | + | @ [5] 3 hours ago | | + | | | | + | | o [4] 4 hours ago | | + | | | | | + | o | [3] 4 hours ago | | + | | | | | + | o | [2] 4 hours ago | | + | |/ | | + | o [1] 4 hours ago | | + | | | | + | o [0] Original | | + +-----------------------------------+ | + | --- 3 2010-10-12 06:27:35 PM | | + | +++ 5 2010-10-12 07:38:37 PM | | + | @@ -1,3 +1,4 | | + | one | | + | two | | + | three | | + | +five | | + +-----------------------------------+------------------------------------+ + Preview pane + +Your current position in the undo tree is marked with an '@' character. Other +nodes are marked with an 'o' character. + +When you toggle open the graph Gundo will put your cursor on your current +position in the tree. You can move up and down the graph with the j and +k keys. + +You can move to the top of the graph (the newest state) with gg and to the +bottom of the graph (the oldest state) with G. + +As you move between undo states the preview pane will show you a unified diff +of the change that state made. + +Pressing enter on a state (or double clicking on it) will revert the contents +of the file to match that state. + +You can use p on a state to make the preview window show the diff between +your current state and the selected state, instead of a preview of what the +selected state changed. + +Pressing P while on a state will initiate "play to" mode targeted at that +state. This will replay all the changes between your current state and the +target, with a slight pause after each change. It's mostly useless, but can be +fun to watch and see where your editing lags -- that might be a good place to +define a new mapping to speed up your editing. + +Pressing q while in the undo graph will close it. You can also just press your +toggle mapping key. + +============================================================================== +3. Configuration *GundoConfig* + +You can tweak the behavior of Gundo by setting a few variables in your :vimrc +file. For example: > + + let g:gundo_width = 60 + let g:gundo_preview_height = 40 + let g:gundo_right = 1 + +------------------------------------------------------------------------------ +3.1 g:gundo_width *gundo_width* + +Set the horizontal width of the Gundo graph (and preview). + +Default: 45 + +------------------------------------------------------------------------------ +3.2 g:gundo_preview_height *gundo_preview_height* + +Set the vertical height of the Gundo preview. + +Default: 15 + +------------------------------------------------------------------------------ +3.3 g:gundo_preview_bottom *gundo_preview_bottom* + +Force the preview window below current windows instead of below the graph. +This gives the preview window more space to show the unified diff. + +Example: + + +--------+ +--------+ + !g! ! ! !g! + !g! ! or ! !g! + !g!______! !______!g! + !g!pppppp! !pppppp!g! + +--------+ +--------+ + +Default: 0 + +------------------------------------------------------------------------------ +3.4 g:gundo_right *gundo_right* + +Set this to 1 to make the Gundo graph (and preview) open on the right side +instead of the left. + +Default: 0 (off, open on the left side) + +------------------------------------------------------------------------------ +3.5 g:gundo_help *gundo_help* + +Set this to 0 to disable the help text in the Gundo graph window. + +Default: 1 (show the help) + +------------------------------------------------------------------------------ +3.6 g:gundo_disable *gundo_disable* + +Set this to 1 to disable Gundo entirely. + +Useful if you use the same ~/.vim folder on multiple machines, and some of +them may not have Python support. + +Default: 0 (Gundo is enabled as usual) + +============================================================================== +4. License *GundoLicense* + +GPLv2+. Look it up. + +============================================================================== +5. Bugs *GundoBugs* + +If you find a bug please post it on the issue tracker: +http://bitbucket.org/sjl/gundo.vim/issues?status=new&status=open + +============================================================================== +6. Contributing *GundoContributing* + +Think you can make this plugin better? Awesome. Fork it on BitBucket or GitHub +and send a pull request. + +BitBucket: http://bitbucket.org/sjl/gundo.vim/ +GitHub: http://github.com/sjl/gundo.vim/ + +============================================================================== +7. Changelog *GundoChangelog* + +v2.0.0 + * Make GundoToggle close the Gundo windows if they're visible but not the + current window, instead of moving to them. + * Add the g:gundo_help setting. + * Add the g:gundo_disable setting. + * Add the 'p' mapping to preview the result of reverting to the selected + state. + * Fix movement commands with counts in the graph. +v1.0.0 + * Initial stable release. + +============================================================================== +8. Credits *GundoCredits* + +The graphing code was all taken from Mercurial, hence the GPLv2+ license. + +The plugin was heavily inspired by histwin.vim, and the code for scratch.vim +helped the author get started. + +============================================================================== diff --git a/doc/tags b/doc/tags index acaf2b3..7f48190 100644 --- a/doc/tags +++ b/doc/tags @@ -136,6 +136,15 @@ ExtractSnips() snipMate.txt /*ExtractSnips()* ExtractSnipsFile() snipMate.txt /*ExtractSnipsFile()* Filename() snipMate.txt /*Filename()* +Gundo-contents gundo.txt /*Gundo-contents* +GundoBugs gundo.txt /*GundoBugs* +GundoChangelog gundo.txt /*GundoChangelog* +GundoConfig gundo.txt /*GundoConfig* +GundoContributing gundo.txt /*GundoContributing* +GundoCredits gundo.txt /*GundoCredits* +GundoIntro gundo.txt /*GundoIntro* +GundoLicense gundo.txt /*GundoLicense* +GundoUsage gundo.txt /*GundoUsage* ResetSnippets() snipMate.txt /*ResetSnippets()* ShowMarksClearAll showmarks.txt /*ShowMarksClearAll* ShowMarksClearMark showmarks.txt /*ShowMarksClearMark* @@ -386,6 +395,13 @@ g:vimwiki_use_calendar vimwiki.txt /*g:vimwiki_use_calendar* g:vimwiki_use_mouse vimwiki.txt /*g:vimwiki_use_mouse* g:vimwiki_valid_html_tags vimwiki.txt /*g:vimwiki_valid_html_tags* g:vimwiki_w32_dir_enc vimwiki.txt /*g:vimwiki_w32_dir_enc* +gundo.txt gundo.txt /*gundo.txt* +gundo_disable gundo.txt /*gundo_disable* +gundo_help gundo.txt /*gundo_help* +gundo_preview_bottom gundo.txt /*gundo_preview_bottom* +gundo_preview_height gundo.txt /*gundo_preview_height* +gundo_right gundo.txt /*gundo_right* +gundo_width gundo.txt /*gundo_width* i_CTRL-G_S surround.txt /*i_CTRL-G_S* i_CTRL-G_s surround.txt /*i_CTRL-G_s* i_CTRL-R_ snipMate.txt /*i_CTRL-R_* diff --git a/plugin/gundo.vim b/plugin/gundo.vim new file mode 100644 index 0000000..5f3d7bd --- /dev/null +++ b/plugin/gundo.vim @@ -0,0 +1,1040 @@ +" ============================================================================ +" File: gundo.vim +" Description: vim global plugin to visualize your undo tree +" Maintainer: Steve Losh +" License: GPLv2+ -- look it up. +" Notes: Much of this code was thiefed from Mercurial, and the rest was +" heavily inspired by scratch.vim and histwin.vim. +" +" ============================================================================ + + +"{{{ Init + +if !exists('g:gundo_debug') && (exists('g:gundo_disable') || exists('loaded_gundo') || &cp)"{{{ + finish +endif +let loaded_gundo = 1"}}} + +if v:version < '703'"{{{ + echo "Gundo requires Vim 7.3+" + finish +endif"}}} + +if has('python')"{{{ + let s:has_supported_python = 1 + +python << ENDPYTHON +import sys +import vim +if sys.version_info[:2] < (2, 4): + vim.command('let s:has_supported_python = 0') +ENDPYTHON + + " Python version is too old + if !s:has_supported_python + echo "Gundo requires that Vim be compiled with Python 2.4+" + finish + endif +else + " no Python support + echo "Gundo requires that Vim be compiled with Python 2.4+" + finish +endif"}}} + +if !exists('g:gundo_width')"{{{ + let g:gundo_width = 45 +endif"}}} +if !exists('g:gundo_preview_height')"{{{ + let g:gundo_preview_height = 15 +endif"}}} +if !exists('g:gundo_preview_bottom')"{{{ + let g:gundo_preview_bottom = 0 +endif"}}} +if !exists('g:gundo_right')"{{{ + let g:gundo_right = 0 +endif"}}} +if !exists('g:gundo_help')"{{{ + let g:gundo_help = 1 +endif"}}} + +"}}} + +"{{{ Mercurial's graphlog code +python << ENDPYTHON +def asciiedges(seen, rev, parents): + """adds edge info to changelog DAG walk suitable for ascii()""" + if rev not in seen: + seen.append(rev) + nodeidx = seen.index(rev) + + knownparents = [] + newparents = [] + for parent in parents: + if parent in seen: + knownparents.append(parent) + else: + newparents.append(parent) + + ncols = len(seen) + seen[nodeidx:nodeidx + 1] = newparents + edges = [(nodeidx, seen.index(p)) for p in knownparents] + + if len(newparents) > 0: + edges.append((nodeidx, nodeidx)) + if len(newparents) > 1: + edges.append((nodeidx, nodeidx + 1)) + + nmorecols = len(seen) - ncols + return nodeidx, edges, ncols, nmorecols + +def get_nodeline_edges_tail( + node_index, p_node_index, n_columns, n_columns_diff, p_diff, fix_tail): + if fix_tail and n_columns_diff == p_diff and n_columns_diff != 0: + # Still going in the same non-vertical direction. + if n_columns_diff == -1: + start = max(node_index + 1, p_node_index) + tail = ["|", " "] * (start - node_index - 1) + tail.extend(["/", " "] * (n_columns - start)) + return tail + else: + return ["\\", " "] * (n_columns - node_index - 1) + else: + return ["|", " "] * (n_columns - node_index - 1) + +def draw_edges(edges, nodeline, interline): + for (start, end) in edges: + if start == end + 1: + interline[2 * end + 1] = "/" + elif start == end - 1: + interline[2 * start + 1] = "\\" + elif start == end: + interline[2 * start] = "|" + else: + nodeline[2 * end] = "+" + if start > end: + (start, end) = (end, start) + for i in range(2 * start + 1, 2 * end): + if nodeline[i] != "+": + nodeline[i] = "-" + +def ascii(buf, state, type, char, text, coldata): + """prints an ASCII graph of the DAG + + takes the following arguments (one call per node in the graph): + + - buffer to write to + - Somewhere to keep the needed state in (init to asciistate()) + - Column of the current node in the set of ongoing edges. + - Type indicator of node data == ASCIIDATA. + - Payload: (char, lines): + - Character to use as node's symbol. + - List of lines to display as the node's text. + - Edges; a list of (col, next_col) indicating the edges between + the current node and its parents. + - Number of columns (ongoing edges) in the current revision. + - The difference between the number of columns (ongoing edges) + in the next revision and the number of columns (ongoing edges) + in the current revision. That is: -1 means one column removed; + 0 means no columns added or removed; 1 means one column added. + """ + + idx, edges, ncols, coldiff = coldata + assert -2 < coldiff < 2 + if coldiff == -1: + # Transform + # + # | | | | | | + # o | | into o---+ + # |X / |/ / + # | | | | + fix_long_right_edges(edges) + + # add_padding_line says whether to rewrite + # + # | | | | | | | | + # | o---+ into | o---+ + # | / / | | | # <--- padding line + # o | | | / / + # o | | + add_padding_line = (len(text) > 2 and coldiff == -1 and + [x for (x, y) in edges if x + 1 < y]) + + # fix_nodeline_tail says whether to rewrite + # + # | | o | | | | o | | + # | | |/ / | | |/ / + # | o | | into | o / / # <--- fixed nodeline tail + # | |/ / | |/ / + # o | | o | | + fix_nodeline_tail = len(text) <= 2 and not add_padding_line + + # nodeline is the line containing the node character (typically o) + nodeline = ["|", " "] * idx + nodeline.extend([char, " "]) + + nodeline.extend( + get_nodeline_edges_tail(idx, state[1], ncols, coldiff, + state[0], fix_nodeline_tail)) + + # shift_interline is the line containing the non-vertical + # edges between this entry and the next + shift_interline = ["|", " "] * idx + if coldiff == -1: + n_spaces = 1 + edge_ch = "/" + elif coldiff == 0: + n_spaces = 2 + edge_ch = "|" + else: + n_spaces = 3 + edge_ch = "\\" + shift_interline.extend(n_spaces * [" "]) + shift_interline.extend([edge_ch, " "] * (ncols - idx - 1)) + + # draw edges from the current node to its parents + draw_edges(edges, nodeline, shift_interline) + + # lines is the list of all graph lines to print + lines = [nodeline] + if add_padding_line: + lines.append(get_padding_line(idx, ncols, edges)) + lines.append(shift_interline) + + # make sure that there are as many graph lines as there are + # log strings + while len(text) < len(lines): + text.append("") + if len(lines) < len(text): + extra_interline = ["|", " "] * (ncols + coldiff) + while len(lines) < len(text): + lines.append(extra_interline) + + # print lines + indentation_level = max(ncols, ncols + coldiff) + for (line, logstr) in zip(lines, text): + ln = "%-*s %s" % (2 * indentation_level, "".join(line), logstr) + buf.write(ln.rstrip() + '\n') + + # ... and start over + state[0] = coldiff + state[1] = idx + +def fix_long_right_edges(edges): + for (i, (start, end)) in enumerate(edges): + if end > start: + edges[i] = (start, end + 1) + +def ascii(buf, state, type, char, text, coldata): + """prints an ASCII graph of the DAG + + takes the following arguments (one call per node in the graph): + + - Somewhere to keep the needed state in (init to asciistate()) + - Column of the current node in the set of ongoing edges. + - Type indicator of node data == ASCIIDATA. + - Payload: (char, lines): + - Character to use as node's symbol. + - List of lines to display as the node's text. + - Edges; a list of (col, next_col) indicating the edges between + the current node and its parents. + - Number of columns (ongoing edges) in the current revision. + - The difference between the number of columns (ongoing edges) + in the next revision and the number of columns (ongoing edges) + in the current revision. That is: -1 means one column removed; + 0 means no columns added or removed; 1 means one column added. + """ + + idx, edges, ncols, coldiff = coldata + assert -2 < coldiff < 2 + if coldiff == -1: + # Transform + # + # | | | | | | + # o | | into o---+ + # |X / |/ / + # | | | | + fix_long_right_edges(edges) + + # add_padding_line says whether to rewrite + # + # | | | | | | | | + # | o---+ into | o---+ + # | / / | | | # <--- padding line + # o | | | / / + # o | | + add_padding_line = (len(text) > 2 and coldiff == -1 and + [x for (x, y) in edges if x + 1 < y]) + + # fix_nodeline_tail says whether to rewrite + # + # | | o | | | | o | | + # | | |/ / | | |/ / + # | o | | into | o / / # <--- fixed nodeline tail + # | |/ / | |/ / + # o | | o | | + fix_nodeline_tail = len(text) <= 2 and not add_padding_line + + # nodeline is the line containing the node character (typically o) + nodeline = ["|", " "] * idx + nodeline.extend([char, " "]) + + nodeline.extend( + get_nodeline_edges_tail(idx, state[1], ncols, coldiff, + state[0], fix_nodeline_tail)) + + # shift_interline is the line containing the non-vertical + # edges between this entry and the next + shift_interline = ["|", " "] * idx + if coldiff == -1: + n_spaces = 1 + edge_ch = "/" + elif coldiff == 0: + n_spaces = 2 + edge_ch = "|" + else: + n_spaces = 3 + edge_ch = "\\" + shift_interline.extend(n_spaces * [" "]) + shift_interline.extend([edge_ch, " "] * (ncols - idx - 1)) + + # draw edges from the current node to its parents + draw_edges(edges, nodeline, shift_interline) + + # lines is the list of all graph lines to print + lines = [nodeline] + if add_padding_line: + lines.append(get_padding_line(idx, ncols, edges)) + lines.append(shift_interline) + + # make sure that there are as many graph lines as there are + # log strings + while len(text) < len(lines): + text.append("") + if len(lines) < len(text): + extra_interline = ["|", " "] * (ncols + coldiff) + while len(lines) < len(text): + lines.append(extra_interline) + + # print lines + indentation_level = max(ncols, ncols + coldiff) + for (line, logstr) in zip(lines, text): + ln = "%-*s %s" % (2 * indentation_level, "".join(line), logstr) + buf.write(ln.rstrip() + '\n') + + # ... and start over + state[0] = coldiff + state[1] = idx + +def generate(dag, edgefn, current): + seen, state = [], [0, 0] + buf = Buffer() + for node, parents in list(dag): + if node.time: + age_label = age(int(node.time)) + else: + age_label = 'Original' + line = '[%s] %s' % (node.n, age_label) + if node.n == current: + char = '@' + else: + char = 'o' + ascii(buf, state, 'C', char, [line], edgefn(seen, node, parents)) + return buf.b +ENDPYTHON +"}}} + +"{{{ Mercurial age function +python << ENDPYTHON +import time + +agescales = [("year", 3600 * 24 * 365), + ("month", 3600 * 24 * 30), + ("week", 3600 * 24 * 7), + ("day", 3600 * 24), + ("hour", 3600), + ("minute", 60), + ("second", 1)] + +def age(ts): + '''turn a timestamp into an age string.''' + + def plural(t, c): + if c == 1: + return t + return t + "s" + def fmt(t, c): + return "%d %s" % (c, plural(t, c)) + + now = time.time() + then = ts + if then > now: + return 'in the future' + + delta = max(1, int(now - then)) + if delta > agescales[0][1] * 2: + return time.strftime('%Y-%m-%d', time.gmtime(float(ts))) + + for t, s in agescales: + n = delta // s + if n >= 2 or s == 1: + return '%s ago' % fmt(t, n) +ENDPYTHON +"}}} + +"{{{ Python Vim utility functions +python << ENDPYTHON +import vim + +normal = lambda s: vim.command('normal %s' % s) + +MISSING_BUFFER = "Cannot find Gundo's target buffer (%s)" +MISSING_WINDOW = "Cannot find window (%s) for Gundo's target buffer (%s)" + +def _check_sanity(): + '''Check to make sure we're not crazy. + + Does the following things: + + * Make sure the target buffer still exists. + ''' + b = int(vim.eval('g:gundo_target_n')) + + if not vim.eval('bufloaded(%d)' % b): + vim.command('echo "%s"' % (MISSING_BUFFER % b)) + return False + + w = int(vim.eval('bufwinnr(%d)' % b)) + if w == -1: + vim.command('echo "%s"' % (MISSING_WINDOW % (w, b))) + return False + + return True + +def _goto_window_for_buffer(b): + w = int(vim.eval('bufwinnr(%d)' % int(b))) + vim.command('%dwincmd w' % w) + +def _goto_window_for_buffer_name(bn): + b = vim.eval('bufnr("%s")' % bn) + return _goto_window_for_buffer(b) + +def _undo_to(n): + n = int(n) + if n == 0: + vim.command('silent earlier %s' % (int(vim.eval('&undolevels')) + 1)) + else: + vim.command('silent undo %d' % n) + + +INLINE_HELP = '''\ +" Gundo for %s [%d] +" j/k - move between undo states +" p - preview diff of selected and current states +" - revert to selected state + +''' +ENDPYTHON +"}}} + +"{{{ Python undo tree data structures and functions +python << ENDPYTHON +import itertools + +class Buffer(object): + def __init__(self): + self.b = '' + + def write(self, s): + self.b += s + +class Node(object): + def __init__(self, n, parent, time, curhead): + self.n = int(n) + self.parent = parent + self.children = [] + self.curhead = curhead + self.time = time + +def _make_nodes(alts, nodes, parent=None): + p = parent + + for alt in alts: + curhead = 'curhead' in alt + node = Node(n=alt['seq'], parent=p, time=alt['time'], curhead=curhead) + nodes.append(node) + if alt.get('alt'): + _make_nodes(alt['alt'], nodes, p) + p = node + +def make_nodes(): + ut = vim.eval('undotree()') + entries = ut['entries'] + + root = Node(0, None, False, 0) + nodes = [] + _make_nodes(entries, nodes, root) + nodes.append(root) + nmap = dict((node.n, node) for node in nodes) + return nodes, nmap + +def changenr(nodes): + _curhead_l = list(itertools.dropwhile(lambda n: not n.curhead, nodes)) + if _curhead_l: + current = _curhead_l[0].parent.n + else: + current = int(vim.eval('changenr()')) + return current +ENDPYTHON +"}}} + +"{{{ Gundo utility functions + +function! s:GundoGetTargetState()"{{{ + let target_line = matchstr(getline("."), '\v\[[0-9]+\]') + return matchstr(target_line, '\v[0-9]+') +endfunction"}}} + +function! s:GundoGoToWindowForBufferName(name)"{{{ + if bufwinnr(bufnr(a:name)) != -1 + exe bufwinnr(bufnr(a:name)) . "wincmd w" + return 1 + else + return 0 + endif +endfunction"}}} + +function! s:GundoIsVisible()"{{{ + if bufwinnr(bufnr("__Gundo__")) != -1 || bufwinnr(bufnr("__Gundo_Preview__")) != -1 + return 1 + else + return 0 + endif +endfunction"}}} + +function! s:GundoInlineHelpLength()"{{{ + if g:gundo_help + return 6 + else + return 0 + endif +endfunction"}}} + +"}}} + +"{{{ Gundo buffer settings + +function! s:GundoMapGraph()"{{{ + nnoremap