commit 599262ee9672eebab20c9eac3886145757f425c4
parent 6aaa2f4d2ffe3e5dd5c9d833e2d3ec1d064958c9
Author: edvb54 <edvb54@gmail.com>
Date: Mon, 23 Jun 2014 13:51:07 -0700
Implement better way to customize Vim color schemes. Add zenburn color scheme.
Diffstat:
vim/colors/zenburn.vim | | | 634 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
vimrc | | | 74 | ++++++++++++++++++++++++++++++++++++-------------------------------------- |
2 files changed, 670 insertions(+), 38 deletions(-)
diff --git a/vim/colors/zenburn.vim b/vim/colors/zenburn.vim
@@ -0,0 +1,634 @@
+" Vim color file
+" Maintainer: Jani Nurminen <slinky@iki.fi>
+" Version: v 2.22
+" URL: http://slinky.imukuppi.org/zenburnpage/
+" License: GNU GPL <http://www.gnu.org/licenses/gpl.html>
+"
+" 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,
+" suggested support for ctags_highlighting.vim
+" - 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
+" - Clayton Parker (claytron) - Convinced by Kurt Maier to use Zenburn. Point
+" out issues with LineNr, fix directory styles, and their usage in MacVim.
+" - Paweł Piekarski - Spotted bad FoldColumn and TabLine. Made better
+" FoldColumn colors, fixed TabLine colors.
+" - Jim - Fix for missing Include group for terminal
+" - Peter (Sakartu) - ColorColumn fixes
+" - Please see git log for the others not listed here
+"
+" 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:
+" let g:zenburn_high_Contrast = 1
+"
+" * For transparent terminals set the background to black with:
+" let g:zenburn_transparent = 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
+"
+" Note: this is enabled only if the old-style Visual
+" if used, see g:zenburn_old_Visual
+"
+" * 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
+"
+" * To disable underlining for Labels, use
+"
+" let g:zenburn_disable_Label_underline = 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.
+"
+" * New (dark) Visual coloring has been introduced.
+" The dark Visual is more aligned with the rest of the colour scheme,
+" especially if you use line numbers. If you wish to use the
+" old Visual coloring, use
+"
+" let g:zenburn_old_Visual = 1
+"
+" Default is to use the new Visual.
+"
+" * EXPERIMENTAL FEATURE: Zenburn would like to support TagHighlight
+" (an evolved ctags-highlighter) by Al Budden (homepage:
+" http://www.cgtk.co.uk/vim-scripts/taghighlight).
+" Current support status is broken: there is no automatic detection of
+" TagHighlight, no specific language support; however there is some basic
+" support for Python. If you are a user of TagHighlight and want to help,
+" please enable:
+"
+" let g:zenburn_enable_TagHighlight=1
+"
+" and improve the corresponding block at the end of the file.
+"
+" 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_transparent")
+ let g:zenburn_transparent = 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_disable_Label_underline")
+ let g:zenburn_disable_Label_underline = 0
+endif
+
+if ! exists("g:zenburn_unified_CursorColumn")
+ let g:zenburn_unified_CursorColumn = 0
+endif
+
+if ! exists("g:zenburn_old_Visual")
+ let g:zenburn_old_Visual = 0
+endif
+
+if ! exists("g:zenburn_enable_TagHighlight")
+ let g:zenburn_enable_TagHighlight = 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=#9fafaf 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 guifg=#f8f893 guibg=#385f38
+hi Keyword guifg=#f0dfaf gui=bold
+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=NONE 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 guifg=#cbecd0 guibg=#2c302d 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=109 cterm=bold
+ hi ErrorMsg ctermfg=115 ctermbg=236 cterm=bold
+ hi Exception ctermfg=249 cterm=bold
+ hi Float ctermfg=251
+ hi Function ctermfg=228
+ hi Identifier ctermfg=223
+ hi Include ctermfg=180 cterm=bold
+ hi IncSearch ctermfg=228 ctermbg=23
+ hi Keyword ctermfg=223 cterm=bold
+ hi LineNr ctermfg=248 ctermbg=233
+ hi Macro ctermfg=223 cterm=bold
+ hi MatchParen ctermfg=229 ctermbg=237 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=22
+ hi SpecialChar ctermfg=181 cterm=bold
+ hi SpecialComment ctermfg=108 cterm=bold
+ hi Special ctermfg=181
+ hi SpecialKey ctermfg=151
+ hi Statement ctermfg=187 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=NONE cterm=bold
+ hi Todo ctermfg=254 ctermbg=NONE cterm=bold
+ hi Typedef ctermfg=253 cterm=bold
+ hi Type ctermfg=187 cterm=bold
+ hi Underlined ctermfg=188 cterm=underline
+ hi VertSplit ctermfg=236 ctermbg=65
+ hi VisualNOS ctermfg=236 ctermbg=210 cterm=bold
+ hi WarningMsg ctermfg=231 ctermbg=236 cterm=bold
+ hi WildMenu ctermfg=194 ctermbg=236 cterm=underline
+
+ " 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
+ else
+ hi CursorColumn ctermbg=235 cterm=none
+ endif
+
+ hi ColorColumn ctermbg=235
+ 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 linenr ctermbg=235
+ 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
+ else
+ hi CursorColumn ctermbg=239 cterm=none
+ endif
+
+ hi ColorColumn ctermbg=238
+ endif
+
+ if exists("g:zenburn_alternate_Error") && g:zenburn_alternate_Error
+ " use more jumpy Error
+ hi Error ctermfg=210 ctermbg=52 cterm=bold
+ else
+ " default is something more zenburn-compatible
+ hi Error ctermfg=167 ctermbg=236 cterm=bold
+ endif
+
+ if exists("g:zenburn_alternate_Include") && g:zenburn_alternate_Include
+ " original setting
+ hi Include ctermfg=223 cterm=bold
+ else
+ " new, less contrasted one
+ hi Include ctermfg=180 cterm=bold
+ endif
+
+ if exists("g:zenburn_disable_Label_underline") && g:zenburn_disable_Label_underline
+ hi Label ctermfg=187
+ else
+ hi Label ctermfg=187 cterm=underline
+ 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
+ else
+ hi CursorColumn 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 NonText guifg=#404040 gui=bold
+
+ hi LineNr guifg=#9fafaf guibg=#161616
+
+ hi ColorColumn guibg=#33332f
+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
+ else
+ hi CursorColumn 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 NonText guifg=#5b605e gui=bold
+
+ hi LineNr guifg=#9fafaf guibg=#262626
+
+ hi ColorColumn guibg=#484848
+endif
+
+if exists("g:zenburn_transparent") && g:zenburn_transparent
+ hi Normal ctermbg=0 guibg=#000000
+ hi Statement ctermbg=NONE
+ hi Title ctermbg=NONE
+ hi Todo ctermbg=NONE
+ hi Underlined ctermbg=NONE
+ hi DiffAdd ctermbg=NONE
+ hi DiffText ctermbg=NONE
+ hi ErrorMsg ctermbg=NONE
+ hi LineNr ctermbg=NONE
+endif
+
+if exists("g:zenburn_old_Visual") && g:zenburn_old_Visual
+ 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
+else
+ " new Visual style
+ if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
+ " high contrast
+ "hi Visual guibg=#304a3d
+ "hi VisualNos guibg=#304a3d
+ "TODO no nice greenish in console, 65 is closest. use full black instead,
+ "although i like the green..!
+ hi Visual guibg=#0f0f0f
+ hi VisualNos guibg=#0f0f0f
+ if &t_Co > 255
+ if exists("g:zenburn_transparent") && g:zenburn_transparent
+ hi Visual ctermbg=235
+ else
+ hi Visual ctermbg=0
+ endif
+ endif
+ else
+ " low contrast
+ hi Visual guibg=#2f2f2f
+ hi VisualNOS guibg=#2f2f2f
+
+ if &t_Co > 255
+ hi Visual ctermbg=235
+ hi VisualNOS ctermbg=235
+ endif
+ endif
+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_disable_Label_underline") && g:zenburn_disable_Label_underline
+ hi Label guifg=#dfcfaf
+else
+ hi Label guifg=#dfcfaf gui=underline
+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
+
+" new tabline and fold column
+if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
+ hi FoldColumn guibg=#161616
+ hi Folded guibg=#161616
+ hi TabLine guifg=#88b090 guibg=#313633 gui=none
+ hi TabLineSel guifg=#ccd990 guibg=#222222
+ hi TabLineFill guifg=#88b090 guibg=#313633 gui=none
+
+ hi SpecialKey guibg=#242424
+
+ if &t_Co > 255
+ hi FoldColumn ctermbg=233 ctermfg=109
+ hi Folded ctermbg=233 ctermfg=109
+ hi TabLine ctermbg=236 ctermfg=108 cterm=none
+ hi TabLineSel ctermbg=235 ctermfg=186 cterm=bold
+ hi TabLineFill ctermbg=236 ctermfg=236 cterm=bold
+ endif
+else
+ hi FoldColumn guibg=#333333
+ hi Folded guibg=#333333
+ hi TabLine guifg=#d0d0b8 guibg=#222222 gui=none
+ hi TabLineSel guifg=#f0f0b0 guibg=#333333 gui=bold
+ hi TabLineFill guifg=#dccdcc guibg=#101010 gui=none
+
+ hi SpecialKey guibg=#444444
+
+ if &t_Co > 255
+ hi FoldColumn ctermbg=236 ctermfg=109
+ hi Folded ctermbg=236 ctermfg=109
+ hi TabLine ctermbg=235 ctermfg=187 cterm=none
+ hi TabLineSel ctermbg=236 ctermfg=229 cterm=bold
+ hi TabLineFill ctermbg=233 ctermfg=233 cterm=bold
+ endif
+endif
+
+" EXPERIMENTAL TagHighlight support
+" link/set sensible defaults here;
+"
+" For now I mostly link to subset of Zenburn colors, the linkage is based
+" on appearance, not semantics. In later versions I might define more new colours.
+"
+" HELP NEEDED to make this work properly.
+
+if exists("g:zenburn_enable_TagHighlight") && g:zenburn_enable_TagHighlight
+ " CTag support may vary, but the first step is to start using it so
+ " we can fix it!
+ "
+ " Consult /plugin/TagHighlight/data/kinds.txt for info on your
+ " language and what's been defined.
+ "
+ " There is potential for language indepedent features here. (Acutally,
+ " seems it may be required for this to be useful...) This way we can
+ " implement features depending on how well CTags are currently implemented
+ " for the language. ie. Global problem for python is annoying. Special
+ " colors are defined for special language features, etc..
+ "
+ " For now all I care about is python supported features:
+ " c:CTagsClass
+ " f:CTagsFunction
+ " i:CTagsImport
+ " m:CTagsMember
+ " v:CTagsGlobalVariable
+ "
+ " Note: TagHighlight defaults to setting new tags to Keyword
+ " highlighting.
+
+ " TODO conditionally run each section
+ " BEGIN Python Section
+ hi link Class Function
+ hi link Import PythonInclude
+ hi link Member Function
+ "Note: Function is already defined
+
+ " Highlighter seems to think a lot of things are global variables even
+ " though they're not. Example: python method-local variable is
+ " coloured as a global variable. They should not be global, since
+ " they're not visible outside the method.
+ " If this is some very bright colour group then things look bad.
+ " hi link GlobalVariable Identifier
+
+ " Because of this problem I am disabling the feature by setting it to
+ " Normal instead
+ hi link GlobalVariable Normal
+ " END Python Section
+
+ " Starting point for other languages.
+ hi link GlobalConstant Constant
+ hi link EnumerationValue Float
+ hi link EnumerationName Identifier
+ hi link DefinedName WarningMsg
+ hi link LocalVariable WarningMsg
+ hi link Structure WarningMsg
+ hi link Union WarningMsg
+endif
+
+" TODO check for more obscure syntax groups that they're ok
+
diff --git a/vimrc b/vimrc
@@ -13,19 +13,17 @@ set t_Co=256
" different color schemes to choose from
set background=dark
-" colorscheme badwolf
-" colorscheme hybrid
-" colorscheme jellybeans
-" colorscheme molokai
-" colorscheme skittles_berry
-colorscheme solarized
+" let s:color = 'badwolf'
+" let s:color = 'hybrid'
+" let s:color = 'jellybeans'
+" let s:color = 'molokai'
+" let s:color = 'zenburn'
+" let s:color = 'skittles_berry'
+let s:color = 'solarized'
-" options{{{2
-" airline stuff
-set laststatus=2
-let g:airline_powerline_fonts = 1
-let g:airline#extensions#tabline#enabled = 1
+execute 'colorscheme '.s:color
+" options{{{2
" Neocomplete options
let g:acp_enableAtStartup = 0
let g:neocomplete#enable_at_startup = 1
@@ -171,7 +169,7 @@ set hlsearch " highlight previous search pattern
set ignorecase " make search non case sensitive
set incsearch " show the next match while entering a search
set nojoinspaces " turn off putting a space after join command
-set showmode " turn off "--INSERT--" at bottom of screen
+set noshowmode " turn off "--INSERT--" at bottom of screen
set nowrap " change what happens when there is no more space on screen
set shiftround " make indents always be at a multiple of the tab width
set showcmd " show commands that you are typing
@@ -184,6 +182,7 @@ set backspace=2 " turn on backspace
set completeopt-=preview " disable pop-up when using Neocomplete
set cryptmethod=blowfish " change the way Vim encrypts files to blowfish from zip
set foldmethod=marker " set the folding method to use three { to start and three } to end
+set laststatus=2 " always turn on status line
set modelines=5 " number of lines down Vim checks for set commands
set mouse=a " turn on the mouse
set nrformats=octal,hex,alpha " allow you to ctrl-a/ctrl-x to increase/decrease letters and numbers
@@ -201,7 +200,7 @@ set wildmode=list,longest,full
" make line numbers go 1,2,3,4...
set number
" make the line your cursor is on 0
-set relativenumber
+" set relativenumber
"extra chars like the end of line one and when text raps to next line
set list
@@ -220,7 +219,6 @@ let g:snips_author="ED"
let g:snips_email="edvb54@gmail.com"
let g:snips_github="edvb54"
-
" highlighting{{{1
" highlight the 81st column so you know when your line is to long
call matchadd('Error', '\%81v', 100)
@@ -229,6 +227,9 @@ au BufRead,BufNewFile *.pde set filetype=arduino
au BufRead,BufNewFile *.ino set filetype=arduino
au BufRead,BufNewFile *.md set filetype=markdown
+au BufRead,BufNewFile *bash_profile set filetype=sh
+au BufRead,BufNewFile *tmux.conf set filetype=sh
+
" spell check
hi SpellBad ctermfg=red cterm=underline
if version >= 700
@@ -237,47 +238,44 @@ if version >= 700
endif
" better highlighting for solarized
-hi CursorLine ctermbg=23
-hi CursorColumn ctermbg=23
-hi Normal ctermbg=0
-hi SignColumn ctermbg=0
-hi Visual ctermfg=10 ctermbg=7
+if s:color == 'solarized'
+ hi CursorLine ctermbg=23
+ hi CursorColumn ctermbg=23
+ hi Normal ctermbg=0
+ hi SignColumn ctermbg=0
+ hi Visual ctermbg=7 ctermfg=10
+ hi Folded cterm=bold
+endif
+
+" better highlighting for molokai
+if s:color == 'molokai'
+ hi NonText ctermbg=none
+ hi Folded ctermbg=none ctermfg=59
+endif
" mapping{{{1
" make ZS save without closing
" ZZ is save and quit and ZQ is just quit
-nnoremap ZS :w<return>
+nnoremap ZS :w<CR>
" make jj typed fast while in insert mode switch to normal mode :D
inoremap jj <Esc>
+" make ctrl+c completely like ESC
+inoremap <C-c> <Esc>
+
" make Q go to next search and run last command
nnoremap Q @='n.'<CR>
" C changes until end of line and D deletes until end of line, so why not Y?
nmap Y y$
-" put : or ; at end of line
-nnoremap g; A;<ESC>
-nnoremap g: A:<ESC>
-
-" turn off highlighted search with g-enter
-nnoremap <silent> g<CR> :noh<CR>
-
" @: was not working :(
nnoremap @: :<Up><CR>
-" indent using the arrow keys
-nnoremap <Right> >>
-nnoremap <Left> <<
-vnoremap <Right> >gv
-vnoremap <Left> <gv
-
-" useful for Neocomplete
-inoremap <C-J> <C-N>
-inoremap <C-K> <C-P>
-
-inoremap <C-D> <C-K>
+" better indenting for visual mode
+vnoremap > >gv
+vnoremap < <gv
" Linux stuff{{{1
let g:clipbrdDefaultReg = '+'