1
0
Fork 0

more vim colors and plugins

This commit is contained in:
Von Random 2018-06-24 01:15:13 +03:00
parent 433b2282d2
commit db97e9a879
9 changed files with 2000 additions and 5 deletions

3
.gitmodules vendored
View file

@ -31,3 +31,6 @@
[submodule "vimpack/opt/vimwiki"]
path = vimpack/opt/vimwiki
url = https://github.com/vimwiki/vimwiki.git
[submodule "vimpack/start/iceberg.vim"]
path = vimpack/start/iceberg.vim
url = https://github.com/cocopon/iceberg.vim.git

@ -0,0 +1 @@
Subproject commit aa4a9cd9b75486e941ce623f9beb3c73e5bcbf6a

View file

@ -0,0 +1,728 @@
" Vim color file
"
" " __ _ _ _ "
" " \ \ ___| | |_ _| |__ ___ __ _ _ __ ___ "
" " \ \/ _ \ | | | | | _ \ / _ \/ _ | _ \/ __| "
" " /\_/ / __/ | | |_| | |_| | __/ |_| | | | \__ \ "
" " \___/ \___|_|_|\__ |____/ \___|\____|_| |_|___/ "
" " \___/ "
"
" "A colorful, dark color scheme for Vim."
"
" File: jellybeans.vim
" URL: github.com/nanotech/jellybeans.vim
" Scripts URL: vim.org/scripts/script.php?script_id=2555
" Maintainer: NanoTech (nanotech.nanotechcorp.net)
" Version: 1.6
" Last Change: October 18th, 2016
" License: MIT
" Contributors: Andrew Wong (w0ng)
" Brian Marshall (bmars)
" Daniel Herbert (pocketninja)
" David Liang <bmdavll at gmail dot com>
" Henry So, Jr. <henryso@panix.com>
" Joe Doherty (docapotamus)
" Karl Litterfeldt (Litterfeldt)
" Keith Pitt (keithpitt)
" Philipp Rustemeier (12foo)
" Rafael Bicalho (rbika)
" Rich Healey (richo)
" Siwen Yu (yusiwen)
" Tim Willis (willist)
"
" Copyright (c) 2009-2016 NanoTech
"
" Permission is hereby granted, free of charge, to any per‐
" son obtaining a copy of this software and associated doc‐
" umentation files (the “Software”), to deal in the Soft‐
" ware without restriction, including without limitation
" the rights to use, copy, modify, merge, publish, distrib‐
" ute, sublicense, and/or sell copies of the Software, and
" to permit persons to whom the Software is furnished to do
" so, subject to the following conditions:
"
" The above copyright notice and this permission notice
" shall be included in all copies or substantial portions
" of the Software.
"
" THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY
" KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
" THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU‐
" LAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CON‐
" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐
" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
" THE SOFTWARE.
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let colors_name = "jellybeans"
if has("gui_running") || (has('termguicolors') && &termguicolors)
let s:true_color = 1
else
let s:true_color = 0
endif
if s:true_color || &t_Co >= 88
let s:low_color = 0
else
let s:low_color = 1
endif
" Configuration Variables:
" - g:jellybeans_overrides (default = {})
" - g:jellybeans_use_lowcolor_black (default = 0)
" - g:jellybeans_use_gui_italics (default = 1)
" - g:jellybeans_use_term_italics (default = 0)
let s:background_color = "151515"
if exists("g:jellybeans_overrides")
let s:overrides = g:jellybeans_overrides
else
let s:overrides = {}
endif
" Backwards compatibility
if exists("g:jellybeans_background_color")
\ || exists("g:jellybeans_background_color_256")
\ || exists("g:jellybeans_use_term_background_color")
let s:overrides = deepcopy(s:overrides)
if !has_key(s:overrides, "background")
let s:overrides["background"] = {}
endif
if exists("g:jellybeans_background_color")
let s:overrides["background"]["guibg"] = g:jellybeans_background_color
endif
if exists("g:jellybeans_background_color_256")
let s:overrides["background"]["256ctermbg"] = g:jellybeans_background_color_256
endif
if exists("g:jellybeans_use_term_background_color")
\ && g:jellybeans_use_term_background_color
let s:overrides["background"]["ctermbg"] = "NONE"
let s:overrides["background"]["256ctermbg"] = "NONE"
endif
endif
if exists("g:jellybeans_use_lowcolor_black") && g:jellybeans_use_lowcolor_black
let s:termBlack = "Black"
else
let s:termBlack = "Grey"
endif
" When `termguicolors` is set, Vim[^1] ignores `hi Normal guibg=NONE`
" after Normal's `guibg` is already set to a color. See:
"
" - https://github.com/vim/vim/issues/981
" - https://github.com/nanotech/jellybeans.vim/issues/64
"
" To work around this, ensure we don't set the default background
" color before an override changes it to `NONE` by ensuring that the
" background color isn't set to a value different from its override.
"
" [^1]: Tested on 8.0.567. Does not apply to Neovim.
"
if has_key(s:overrides, "background") && has_key(s:overrides["background"], "guibg")
let s:background_color = s:overrides["background"]["guibg"]
endif
" Color approximation functions by Henry So, Jr. and David Liang {{{
" Added to jellybeans.vim by Daniel Herbert
if &t_Co == 88
" returns an approximate grey index for the given grey level
fun! s:grey_number(x)
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
endfun
" returns the actual grey level represented by the grey index
fun! s:grey_level(n)
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
endfun
" returns the palette index for the given grey index
fun! s:grey_color(n)
if a:n == 0
return 16
elseif a:n == 9
return 79
else
return 79 + a:n
endif
endfun
" returns an approximate color index for the given color level
fun! s:rgb_number(x)
if a:x < 69
return 0
elseif a:x < 172
return 1
elseif a:x < 230
return 2
else
return 3
endif
endfun
" returns the actual color level for the given color index
fun! s:rgb_level(n)
if a:n == 0
return 0
elseif a:n == 1
return 139
elseif a:n == 2
return 205
else
return 255
endif
endfun
" returns the palette index for the given R/G/B color indices
fun! s:rgb_color(x, y, z)
return 16 + (a:x * 16) + (a:y * 4) + a:z
endfun
else " assuming &t_Co == 256
" returns an approximate grey index for the given grey level
fun! s:grey_number(x)
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
endfun
" returns the actual grey level represented by the grey index
fun! s:grey_level(n)
if a:n == 0
return 0
else
return 8 + (a:n * 10)
endif
endfun
" returns the palette index for the given grey index
fun! s:grey_color(n)
if a:n == 0
return 16
elseif a:n == 25
return 231
else
return 231 + a:n
endif
endfun
" returns an approximate color index for the given color level
fun! s:rgb_number(x)
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
endfun
" returns the actual color level for the given color index
fun! s:rgb_level(n)
if a:n == 0
return 0
else
return 55 + (a:n * 40)
endif
endfun
" returns the palette index for the given R/G/B color indices
fun! s:rgb_color(x, y, z)
return 16 + (a:x * 36) + (a:y * 6) + a:z
endfun
endif
" returns the palette index to approximate the given R/G/B color levels
fun! s:color(r, g, b)
" map greys directly (see xterm's 256colres.pl)
if &t_Co == 256 && a:r == a:g && a:g == a:b && a:r > 3 && a:r < 243
return (a:r - 8) / 10 + 232
endif
" 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
fun! s:is_empty_or_none(str)
return empty(a:str) || a:str ==? "NONE"
endfun
" returns the palette index to approximate the 'rrggbb' hex string
fun! s:rgb(rgb)
if s:is_empty_or_none(a:rgb)
return "NONE"
endif
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
fun! s:prefix_highlight_value_with(prefix, color)
if s:is_empty_or_none(a:color)
return "NONE"
else
return a:prefix . a:color
endif
endfun
fun! s:remove_italic_attr(attr)
let l:attr = join(filter(split(a:attr, ","), "v:val !=? 'italic'"), ",")
if empty(l:attr)
let l:attr = "NONE"
endif
return l:attr
endfun
" sets the highlighting for the given group
fun! s:X(group, fg, bg, attr, lcfg, lcbg)
if s:low_color
let l:cmd = "hi ".a:group.
\ " ctermfg=".s:prefix_highlight_value_with("", a:lcfg).
\ " ctermbg=".s:prefix_highlight_value_with("", a:lcbg)
else
let l:cmd = "hi ".a:group.
\ " guifg=".s:prefix_highlight_value_with("#", a:fg).
\ " guibg=".s:prefix_highlight_value_with("#", a:bg)
if !s:true_color
let l:cmd = l:cmd.
\ " ctermfg=".s:rgb(a:fg).
\ " ctermbg=".s:rgb(a:bg)
endif
endif
let l:attr = s:prefix_highlight_value_with("", a:attr)
if exists("g:jellybeans_use_term_italics") && g:jellybeans_use_term_italics
let l:cterm_attr = l:attr
else
let l:cterm_attr = s:remove_italic_attr(l:attr)
endif
if !exists("g:jellybeans_use_gui_italics") || g:jellybeans_use_gui_italics
let l:gui_attr = l:attr
else
let l:gui_attr = s:remove_italic_attr(l:attr)
endif
let l:cmd = l:cmd." gui=".l:gui_attr." cterm=".l:cterm_attr
exec l:cmd
endfun
" }}}
call s:X("Normal","e8e8d3",s:background_color,"","White","")
set background=dark
call s:X("CursorLine","","1c1c1c","","",s:termBlack)
call s:X("CursorColumn","","1c1c1c","","",s:termBlack)
" Some of Terminal.app's default themes have a cursor color
" too close to Jellybeans' preferred MatchParen background
" color to be easily distinguishable. Other terminals tend
" to use a brighter cursor color.
"
" Use a more distinct color in Terminal.app, and also in
" low-color terminals if the preferred background color is
" not available.
if !has('gui_running') && $TERM_PROGRAM == "Apple_Terminal"
let s:matchParenGuiFg = "dd0093"
let s:matchParenGuiBg = "000000"
else
let s:matchParenGuiFg = "ffffff"
let s:matchParenGuiBg = "556779"
endif
if s:termBlack != "Black"
let s:matchParenTermFg = "Magenta"
let s:matchParenTermBg = ""
else
let s:matchParenTermFg = ""
let s:matchParenTermBg = s:termBlack
endif
call s:X("MatchParen",s:matchParenGuiFg,s:matchParenGuiBg,"bold",
\ s:matchParenTermFg,s:matchParenTermBg)
call s:X("TabLine","000000","b0b8c0","italic","",s:termBlack)
call s:X("TabLineFill","9098a0","","","",s:termBlack)
call s:X("TabLineSel","000000","f0f0f0","italic,bold",s:termBlack,"White")
" Auto-completion
call s:X("Pmenu","ffffff","606060","","White",s:termBlack)
call s:X("PmenuSel","101010","eeeeee","",s:termBlack,"White")
call s:X("Visual","","404040","","",s:termBlack)
call s:X("Cursor",s:background_color,"b0d0f0","","","")
call s:X("LineNr","605958",s:background_color,"NONE",s:termBlack,"")
call s:X("CursorLineNr","ccc5c4","","NONE","White","")
call s:X("Comment","888888","","italic","Grey","")
call s:X("Todo","c7c7c7","","bold","White",s:termBlack)
call s:X("StatusLine","000000","dddddd","italic","","White")
call s:X("StatusLineNC","ffffff","403c41","italic","White","Black")
call s:X("VertSplit","777777","403c41","",s:termBlack,s:termBlack)
call s:X("WildMenu","f0a0c0","302028","","Magenta","")
call s:X("Folded","a0a8b0","384048","italic",s:termBlack,"")
call s:X("FoldColumn","535D66","1f1f1f","","",s:termBlack)
call s:X("SignColumn","777777","333333","","",s:termBlack)
call s:X("ColorColumn","","000000","","",s:termBlack)
call s:X("Title","70b950","","bold","Green","")
call s:X("Constant","cf6a4c","","","Red","")
call s:X("Special","799d6a","","","Green","")
call s:X("Delimiter","668799","","","Grey","")
call s:X("String","99ad6a","","","Green","")
call s:X("StringDelimiter","556633","","","DarkGreen","")
call s:X("Identifier","c6b6ee","","","LightCyan","")
call s:X("Structure","8fbfdc","","","LightCyan","")
call s:X("Function","fad07a","","","Yellow","")
call s:X("Statement","8197bf","","","DarkBlue","")
call s:X("PreProc","8fbfdc","","","LightBlue","")
hi! link Operator Structure
hi! link Conceal Operator
call s:X("Type","ffb964","","","Yellow","")
call s:X("NonText","606060",s:background_color,"",s:termBlack,"")
call s:X("SpecialKey","444444","1c1c1c","",s:termBlack,"")
call s:X("Search","f0a0c0","302028","underline","Magenta","")
call s:X("Directory","dad085","","","Yellow","")
call s:X("ErrorMsg","","902020","","","DarkRed")
hi! link Error ErrorMsg
hi! link MoreMsg Special
call s:X("Question","65C254","","","Green","")
" Spell Checking
call s:X("SpellBad","","902020","underline","","DarkRed")
call s:X("SpellCap","","0000df","underline","","Blue")
call s:X("SpellRare","","540063","underline","","DarkMagenta")
call s:X("SpellLocal","","2D7067","underline","","Green")
" Diff
hi! link diffRemoved Constant
hi! link diffAdded String
" VimDiff
call s:X("DiffAdd","D2EBBE","437019","","White","DarkGreen")
call s:X("DiffDelete","40000A","700009","","DarkRed","DarkRed")
call s:X("DiffChange","","2B5B77","","White","DarkBlue")
call s:X("DiffText","8fbfdc","000000","reverse","Yellow","")
" PHP
hi! link phpFunctions Function
call s:X("StorageClass","c59f6f","","","Red","")
hi! link phpSuperglobal Identifier
hi! link phpQuoteSingle StringDelimiter
hi! link phpQuoteDouble StringDelimiter
hi! link phpBoolean Constant
hi! link phpNull Constant
hi! link phpArrayPair Operator
hi! link phpOperator Normal
hi! link phpRelation Normal
hi! link phpVarSelector Identifier
" Python
hi! link pythonOperator Statement
" Ruby
hi! link rubySharpBang Comment
call s:X("rubyClass","447799","","","DarkBlue","")
call s:X("rubyIdentifier","c6b6fe","","","Cyan","")
hi! link rubyConstant Type
hi! link rubyFunction Function
call s:X("rubyInstanceVariable","c6b6fe","","","Cyan","")
call s:X("rubySymbol","7697d6","","","Blue","")
hi! link rubyGlobalVariable rubyInstanceVariable
hi! link rubyModule rubyClass
call s:X("rubyControl","7597c6","","","Blue","")
hi! link rubyString String
hi! link rubyStringDelimiter StringDelimiter
hi! link rubyInterpolationDelimiter Identifier
call s:X("rubyRegexpDelimiter","540063","","","Magenta","")
call s:X("rubyRegexp","dd0093","","","DarkMagenta","")
call s:X("rubyRegexpSpecial","a40073","","","Magenta","")
call s:X("rubyPredefinedIdentifier","de5577","","","Red","")
" Erlang
hi! link erlangAtom rubySymbol
hi! link erlangBIF rubyPredefinedIdentifier
hi! link erlangFunction rubyPredefinedIdentifier
hi! link erlangDirective Statement
hi! link erlangNode Identifier
" Elixir
hi! link elixirAtom rubySymbol
" JavaScript
hi! link javaScriptValue Constant
hi! link javaScriptRegexpString rubyRegexp
hi! link javaScriptTemplateVar StringDelim
hi! link javaScriptTemplateDelim Identifier
hi! link javaScriptTemplateString String
" CoffeeScript
hi! link coffeeRegExp javaScriptRegexpString
" Lua
hi! link luaOperator Conditional
" C
hi! link cFormat Identifier
hi! link cOperator Constant
" Objective-C/Cocoa
hi! link objcClass Type
hi! link cocoaClass objcClass
hi! link objcSubclass objcClass
hi! link objcSuperclass objcClass
hi! link objcDirective rubyClass
hi! link objcStatement Constant
hi! link cocoaFunction Function
hi! link objcMethodName Identifier
hi! link objcMethodArg Normal
hi! link objcMessageName Identifier
" Vimscript
hi! link vimOper Normal
" HTML
hi! link htmlTag Statement
hi! link htmlEndTag htmlTag
hi! link htmlTagName htmlTag
" XML
hi! link xmlTag Statement
hi! link xmlEndTag xmlTag
hi! link xmlTagName xmlTag
hi! link xmlEqual xmlTag
hi! link xmlEntity Special
hi! link xmlEntityPunct xmlEntity
hi! link xmlDocTypeDecl PreProc
hi! link xmlDocTypeKeyword PreProc
hi! link xmlProcessingDelim xmlAttrib
" Debugger.vim
call s:X("DbgCurrent","DEEBFE","345FA8","","White","DarkBlue")
call s:X("DbgBreakPt","","4F0037","","","DarkMagenta")
" vim-indent-guides
if !exists("g:indent_guides_auto_colors")
let g:indent_guides_auto_colors = 0
endif
call s:X("IndentGuidesOdd","","232323","","","")
call s:X("IndentGuidesEven","","1b1b1b","","","")
" Plugins, etc.
hi! link TagListFileName Directory
call s:X("PreciseJumpTarget","B9ED67","405026","","White","Green")
" Manual overrides for 256-color terminals. Dark colors auto-map badly.
if !s:low_color
hi StatusLineNC ctermbg=235
hi Folded ctermbg=236
hi DiffText ctermfg=81
hi DbgBreakPt ctermbg=53
hi IndentGuidesOdd ctermbg=235
hi IndentGuidesEven ctermbg=234
endif
if !empty("s:overrides")
fun! s:current_attr(group)
let l:synid = synIDtrans(hlID(a:group))
let l:attrs = []
for l:attr in ["bold", "italic", "reverse", "standout", "underline", "undercurl"]
if synIDattr(l:synid, l:attr, "gui") == 1
call add(l:attrs, l:attr)
endif
endfor
return join(l:attrs, ",")
endfun
fun! s:current_color(group, what, mode)
let l:color = synIDattr(synIDtrans(hlID(a:group)), a:what, a:mode)
if l:color == -1
return ""
else
return substitute(l:color, "^#", "", "")
endif
endfun
fun! s:load_color_def(group, def)
call s:X(a:group, get(a:def, "guifg", s:current_color(a:group, "fg", "gui")),
\ get(a:def, "guibg", s:current_color(a:group, "bg", "gui")),
\ get(a:def, "attr", s:current_attr(a:group)),
\ get(a:def, "ctermfg", s:current_color(a:group, "fg", "cterm")),
\ get(a:def, "ctermbg", s:current_color(a:group, "bg", "cterm")))
if !s:low_color
for l:prop in ["ctermfg", "ctermbg"]
let l:override_key = "256".l:prop
if has_key(a:def, l:override_key)
exec "hi ".a:group." ".l:prop."=".a:def[l:override_key]
endif
endfor
endif
endfun
fun! s:load_colors(defs)
for [l:group, l:def] in items(a:defs)
if l:group == "background"
call s:load_color_def("LineNr", l:def)
call s:load_color_def("NonText", l:def)
call s:load_color_def("Normal", l:def)
else
call s:load_color_def(l:group, l:def)
endif
unlet l:group
unlet l:def
endfor
endfun
call s:load_colors(s:overrides)
delf s:load_colors
delf s:load_color_def
delf s:current_color
delf s:current_attr
endif
" delete functions {{{
delf s:X
delf s:remove_italic_attr
delf s:prefix_highlight_value_with
delf s:rgb
delf s:is_empty_or_none
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
" }}}

View file

@ -0,0 +1,769 @@
" ============================================================================
" Name: Lucius vim color scheme
" Author: Jonathan Filip <jfilip1024@gmail.com>
" Version: 8.1.7
" ----------------------------------------------------------------------------
"
" Light and dark color scheme for GUI and 256 color terminal.
"
" There are several options available to customize the color scheme to your
" own tastes. This is particularly useful when you have to work in different
" environments at different times (home, work, day, night, etc).
"
" The GUI and 256 color terminal versions of this color scheme are identical.
"
" You can set up the color scheme by manually setting the options you want or
" by choosing one of the presets defined. These presets are loaded after you
" first source the color scheme file and are all commands that start with
" 'Lucius'.
"
" I have also started to create color schemes for different applications. I
" have been using them for PuTTY, iTerm2, and Visual Studio, but will keep
" adding more as I go along. You can find the files for these on Github:
"
" https://github.com/jonathanfilip/lucius
"
" You can also clone the following repository if you use Pathogen or something
" similar. It holds the vim color scheme in a 'colors' directory:
"
" https://github.com/jonathanfilip/vim-lucius
"
"
"
" Presets:
"
" There are several presets available that will set all the options for you.
" There are screenshots of each preset below:
"
" * LuciusDark (dark default): http://i.imgur.com/LsZbF.png
" * LuciusDarkHighContrast: http://i.imgur.com/e70i9.png
" * LuciusDarkLowContrast: http://i.imgur.com/Hmw8s.png
" * LuciusBlack: http://i.imgur.com/iD4ri.png
" * LuciusBlackHighContrast: http://i.imgur.com/lHvTJ.png
" * LuciusBlackLowContrast: http://i.imgur.com/oZLkg.png
"
" * LuciusLight (light default): http://i.imgur.com/soYD8.png
" * LuciusLightLowContrast: http://i.imgur.com/95I86.png
" * LuciusWhite: http://i.imgur.com/wDzkz.png
" * LuciusWhiteLowContrast: http://i.imgur.com/jlUf4.png
"
" To use the presets, you just need to set the color scheme first. In your
" vimrc, you can just do this:
"
" colorscheme lucius
" LuciusBlack
"
" You can still just set the background variable and then set the color
" scheme. This will default to LuciusDark for 'dark' and LuciusLight for
" 'light'.
"
"
" Options:
"
" The presets available cover most of the options. You can, however, customize
" things by setting the following variables yourself:
"
" g:lucius_style (default: 'dark')
"
" Set this option to either 'light' or 'dark' for your desired color scheme.
" It has the same effect as setting the background.
"
" g:lucius_contrast (default: 'normal')
"
" This option determines the contrast to use for text/ui elements. It can be
" set to 'low', 'normal', or 'high'. At this time there is no 'high' for the
" light scheme.
"
" g:lucius_contrast_bg (default: 'normal')
"
" Setting this option makes the background a higher contrast. Current settings
" are 'normal' and 'high'.
"
" g:lucius_use_bold (default: 1)
"
" Setting this will cause the color scheme to use bold fonts for some items.
"
" g:lucius_use_underline (default: 1)
"
" Setting this will cause the color scheme to use underlined fonts for some
" items.
"
" g:lucius_no_term_bg (default: 0)
"
" Setting this will cause the color scheme to not set a background color in
" the terminal (useful for transparency or terminals with different background
" colors).
"
" ============================================================================
" ============================================================================
" Options:
" ============================================================================
unlet! g:colors_name
hi clear
if exists("syntax_on")
syntax reset
endif
if exists("g:lucius_style")
let s:style = g:lucius_style
else
let s:style = &background
endif
if exists("g:lucius_contrast")
let s:contrast = g:lucius_contrast
else
let s:contrast = "normal"
endif
if exists("g:lucius_contrast_bg")
let s:contrast_bg = g:lucius_contrast_bg
else
let s:contrast_bg = "normal"
endif
if exists("g:lucius_use_bold")
let s:use_bold = g:lucius_use_bold
else
let s:use_bold = 1
endif
if exists("g:lucius_use_underline")
let s:use_underline = g:lucius_use_underline
else
let s:use_underline = 1
endif
if exists("g:lucius_no_term_bg")
let s:no_term_bg = g:lucius_no_term_bg
else
let s:no_term_bg = 0
endif
" ============================================================================
" Color Map:
" ============================================================================
let s:color_map = {
\ 'bg': 'bg', 'fg': 'fg', 'NONE': 'NONE',
\ '#000000': '16', '#00005f': '17', '#000087': '18', '#0000af': '19',
\ '#0000d7': '20', '#0000ff': '21', '#005f00': '22', '#005f5f': '23',
\ '#005f87': '24', '#005faf': '25', '#005fd7': '26', '#005fff': '27',
\ '#008700': '28', '#00875f': '29', '#008787': '30', '#0087af': '31',
\ '#0087d7': '32', '#0087ff': '33', '#00af00': '34', '#00af5f': '35',
\ '#00af87': '36', '#00afaf': '37', '#00afd7': '38', '#00afff': '39',
\ '#00d700': '40', '#00d75f': '41', '#00d787': '42', '#00d7af': '43',
\ '#00d7d7': '44', '#00d7ff': '45', '#00ff00': '46', '#00ff5f': '47',
\ '#00ff87': '48', '#00ffaf': '49', '#00ffd7': '50', '#00ffff': '51',
\ '#5f0000': '52', '#5f005f': '53', '#5f0087': '54', '#5f00af': '55',
\ '#5f00d7': '56', '#5f00ff': '57', '#5f5f00': '58', '#5f5f5f': '59',
\ '#5f5f87': '60', '#5f5faf': '61', '#5f5fd7': '62', '#5f5fff': '63',
\ '#5f8700': '64', '#5f875f': '65', '#5f8787': '66', '#5f87af': '67',
\ '#5f87d7': '68', '#5f87ff': '69', '#5faf00': '70', '#5faf5f': '71',
\ '#5faf87': '72', '#5fafaf': '73', '#5fafd7': '74', '#5fafff': '75',
\ '#5fd700': '76', '#5fd75f': '77', '#5fd787': '78', '#5fd7af': '79',
\ '#5fd7d7': '80', '#5fd7ff': '81', '#5fff00': '82', '#5fff5f': '83',
\ '#5fff87': '84', '#5fffaf': '85', '#5fffd7': '86', '#5fffff': '87',
\ '#870000': '88', '#87005f': '89', '#870087': '90', '#8700af': '91',
\ '#8700d7': '92', '#8700ff': '93', '#875f00': '94', '#875f5f': '95',
\ '#875f87': '96', '#875faf': '97', '#875fd7': '98', '#875fff': '99',
\ '#878700': '100', '#87875f': '101', '#878787': '102', '#8787af': '103',
\ '#8787d7': '104', '#8787ff': '105', '#87af00': '106', '#87af5f': '107',
\ '#87af87': '108', '#87afaf': '109', '#87afd7': '110', '#87afff': '111',
\ '#87d700': '112', '#87d75f': '113', '#87d787': '114', '#87d7af': '115',
\ '#87d7d7': '116', '#87d7ff': '117', '#87ff00': '118', '#87ff5f': '119',
\ '#87ff87': '120', '#87ffaf': '121', '#87ffd7': '122', '#87ffff': '123',
\ '#af0000': '124', '#af005f': '125', '#af0087': '126', '#af00af': '127',
\ '#af00d7': '128', '#af00ff': '129', '#af5f00': '130', '#af5f5f': '131',
\ '#af5f87': '132', '#af5faf': '133', '#af5fd7': '134', '#af5fff': '135',
\ '#af8700': '136', '#af875f': '137', '#af8787': '138', '#af87af': '139',
\ '#af87d7': '140', '#af87ff': '141', '#afaf00': '142', '#afaf5f': '143',
\ '#afaf87': '144', '#afafaf': '145', '#afafd7': '146', '#afafff': '147',
\ '#afd700': '148', '#afd75f': '149', '#afd787': '150', '#afd7af': '151',
\ '#afd7d7': '152', '#afd7ff': '153', '#afff00': '154', '#afff5f': '155',
\ '#afff87': '156', '#afffaf': '157', '#afffd7': '158', '#afffff': '159',
\ '#d70000': '160', '#d7005f': '161', '#d70087': '162', '#d700af': '163',
\ '#d700d7': '164', '#d700ff': '165', '#d75f00': '166', '#d75f5f': '167',
\ '#d75f87': '168', '#d75faf': '169', '#d75fd7': '170', '#d75fff': '171',
\ '#d78700': '172', '#d7875f': '173', '#d78787': '174', '#d787af': '175',
\ '#d787d7': '176', '#d787ff': '177', '#d7af00': '178', '#d7af5f': '179',
\ '#d7af87': '180', '#d7afaf': '181', '#d7afd7': '182', '#d7afff': '183',
\ '#d7d700': '184', '#d7d75f': '185', '#d7d787': '186', '#d7d7af': '187',
\ '#d7d7d7': '188', '#d7d7ff': '189', '#d7ff00': '190', '#d7ff5f': '191',
\ '#d7ff87': '192', '#d7ffaf': '193', '#d7ffd7': '194', '#d7ffff': '195',
\ '#ff0000': '196', '#ff005f': '197', '#ff0087': '198', '#ff00af': '199',
\ '#ff00d7': '200', '#ff00ff': '201', '#ff5f00': '202', '#ff5f5f': '203',
\ '#ff5f87': '204', '#ff5faf': '205', '#ff5fd7': '206', '#ff5fff': '207',
\ '#ff8700': '208', '#ff875f': '209', '#ff8787': '210', '#ff87af': '211',
\ '#ff87d7': '212', '#ff87ff': '213', '#ffaf00': '214', '#ffaf5f': '215',
\ '#ffaf87': '216', '#ffafaf': '217', '#ffafd7': '218', '#ffafff': '219',
\ '#ffd700': '220', '#ffd75f': '221', '#ffd787': '222', '#ffd7af': '223',
\ '#ffd7d7': '224', '#ffd7ff': '225', '#ffff00': '226', '#ffff5f': '227',
\ '#ffff87': '228', '#ffffaf': '229', '#ffffd7': '230', '#ffffff': '231',
\ '#080808': '232', '#121212': '233', '#1c1c1c': '234', '#262626': '235',
\ '#303030': '236', '#3a3a3a': '237', '#444444': '238', '#4e4e4e': '239',
\ '#585858': '240', '#626262': '241', '#6c6c6c': '242', '#767676': '243',
\ '#808080': '244', '#8a8a8a': '245', '#949494': '246', '#9e9e9e': '247',
\ '#a8a8a8': '248', '#b2b2b2': '249', '#bcbcbc': '250', '#c6c6c6': '251',
\ '#d0d0d0': '252', '#dadada': '253', '#e4e4e4': '254', '#eeeeee': '255',
\ }
" ============================================================================
" Functions:
" ============================================================================
function! s:AddCterm(name)
exec "let l:gfg = synIDattr(synIDtrans(hlID('" . a:name .
\ "')), 'fg', 'gui')"
exec "let l:gbg = synIDattr(synIDtrans(hlID('" . a:name .
\ "')), 'bg', 'gui')"
let l:gfg = l:gfg == "" ? "NONE" : l:gfg
let l:gbg = l:gbg == "" ? "NONE" : l:gbg
exec "hi " . a:name . " ctermfg=" . s:color_map[l:gfg] .
\ " ctermbg=" . s:color_map[l:gbg]
endfunction
function! s:AddSpCterm(name)
exec "let l:gsp = synIDattr(synIDtrans(hlID('" . a:name .
\ "')), 'sp', 'gui')"
let l:gsp = l:gsp == "" ? "NONE" : l:gsp
exec "hi " . a:name . " ctermfg=" . s:color_map[l:gsp]
endfunction
" ============================================================================
" Text Groups:
" ============================================================================
let s:normal_items = [
\ "ColorColumn", "Comment", "Constant", "Cursor", "CursorColumn",
\ "CursorIM", "CursorLine", "CursorLineNr", "DiffAdd", "DiffChange",
\ "DiffDelete", "Directory", "Error", "ErrorMsg", "Identifier",
\ "IncSearch", "LineNr", "MatchParen", "ModeMsg", "MoreMsg",
\ "NonText", "Pmenu", "PmenuSbar", "PmenuSel",
\ "PmenuThumb", "PreProc", "Question", "Search", "SignColumn",
\ "Special", "SpecialKey", "Statement", "StatusLineNC", "TabLine",
\ "TabLineFill", "Todo", "Type", "VertSplit", "Visual",
\ "WarningMsg", "WildMenu",
\ ]
let s:bold_items = [
\ "DiffText", "FoldColumn", "Folded", "StatusLine", "TabLineSel",
\ "Title", "CursorLineNr",
\ ]
let s:underline_items = [
\ "Underlined", "VisualNOS"
\ ]
let s:undercurl_items = [
\ "SpellBad", "SpellCap", "SpellLocal", "SpellRare"
\ ]
" ============================================================================
" Color Definitions:
" ============================================================================
" ----------------------------------------------------------------------------
" 'Normal' Colors:
" ----------------------------------------------------------------------------
hi clear Normal
hi Normal gui=none cterm=none term=none
if s:style == "light"
if s:contrast == "high"
hi Normal guifg=#000000
elseif s:contrast == "low"
hi Normal guifg=#626262
else
hi Normal guifg=#444444
endif
else
if s:contrast == "high"
hi Normal guifg=#eeeeee
elseif s:contrast == "low"
hi Normal guifg=#bcbcbc
else
hi Normal guifg=#d7d7d7
endif
endif
if s:style == "light"
if s:contrast_bg == "high"
hi Normal guibg=#ffffff
else
hi Normal guibg=#eeeeee
endif
else
if s:contrast_bg == "high"
hi Normal guibg=#121212
else
hi Normal guibg=#303030
endif
endif
call s:AddCterm("Normal")
" ----------------------------------------------------------------------------
" Extra setup
" ----------------------------------------------------------------------------
exec "set background=" . s:style
" Clear default settings
for s:item in s:normal_items + s:bold_items + s:underline_items + s:undercurl_items
exec "hi " . s:item . " guifg=NONE guibg=NONE gui=none"
\ . " ctermfg=NONE ctermbg=NONE cterm=none term=none"
endfor
let g:colors_name="lucius"
" ----------------------------------------------------------------------------
" Text Markup:
" ----------------------------------------------------------------------------
if s:style == "light"
hi NonText guifg=#afafd7
hi SpecialKey guifg=#afd7af
if s:contrast == "low"
hi Comment guifg=#9e9e9e
hi Constant guifg=#d78700
hi Directory guifg=#00af87
hi Identifier guifg=#00af00
hi PreProc guifg=#00afaf
hi Special guifg=#af00af
hi Statement guifg=#0087d7
hi Title guifg=#0087d7
hi Type guifg=#0087af
else
hi Comment guifg=#808080
hi Constant guifg=#af5f00
hi Directory guifg=#00875f
hi Identifier guifg=#008700
hi PreProc guifg=#008787
hi Special guifg=#870087
hi Statement guifg=#005faf
hi Title guifg=#005faf
hi Type guifg=#005f87
endif
else
hi NonText guifg=#5f5f87
hi SpecialKey guifg=#5f875f
if s:contrast == "low"
hi Comment guifg=#6c6c6c
hi Constant guifg=#afaf87
hi Directory guifg=#87af87
hi Identifier guifg=#87af5f
hi PreProc guifg=#5faf87
hi Special guifg=#af87af
hi Statement guifg=#5fafd7
hi Title guifg=#00afd7
hi Type guifg=#5fafaf
elseif s:contrast == "high"
hi Comment guifg=#8a8a8a
hi Constant guifg=#ffffd7
hi Directory guifg=#d7ffd7
hi Identifier guifg=#d7ffaf
hi PreProc guifg=#afffd7
hi Special guifg=#ffd7ff
hi Statement guifg=#afffff
hi Title guifg=#87d7ff
hi Type guifg=#afffff
else
hi Comment guifg=#808080
hi Constant guifg=#d7d7af
hi Directory guifg=#afd7af
hi Identifier guifg=#afd787
hi PreProc guifg=#87d7af
hi Special guifg=#d7afd7
hi Statement guifg=#87d7ff
hi Title guifg=#5fafd7
hi Type guifg=#87d7d7
endif
endif
" ----------------------------------------------------------------------------
" Highlighting:
" ----------------------------------------------------------------------------
hi Cursor guifg=bg
hi CursorColumn guifg=NONE
hi CursorIM guifg=bg
hi CursorLine guifg=NONE
hi Visual guifg=NONE
hi VisualNOS guifg=fg guibg=NONE
if s:style == "light"
hi CursorColumn guibg=#dadada
hi CursorLine guibg=#dadada
hi IncSearch guifg=fg guibg=#5fd7d7
hi MatchParen guifg=NONE guibg=#5fd7d7
hi Search guifg=fg guibg=#ffaf00
hi Visual guibg=#afd7ff
if s:contrast == "low"
hi Cursor guibg=#87afd7
hi CursorIM guibg=#87afd7
hi Error guifg=#d70000 guibg=#ffd7d7
hi Todo guifg=#af8700 guibg=#ffffaf
else
hi Cursor guibg=#5f87af
hi CursorIM guibg=#5f87af
hi Error guifg=#af0000 guibg=#d7afaf
hi Todo guifg=#875f00 guibg=#ffffaf
endif
else
hi CursorColumn guibg=#444444
hi CursorLine guibg=#444444
hi IncSearch guifg=bg
hi MatchParen guifg=fg guibg=#87af00
hi Search guifg=bg
hi Visual guibg=#005f87
if s:contrast == "low"
hi Cursor guibg=#5f87af
hi CursorIM guibg=#5f87af
hi Error guifg=#d75f5f guibg=#870000
hi IncSearch guibg=#00afaf
hi Search guibg=#d78700
hi Todo guifg=#afaf00 guibg=#5f5f00
elseif s:contrast == "high"
hi Cursor guibg=#afd7ff
hi CursorIM guibg=#afd7ff
hi Error guifg=#ffafaf guibg=#af0000
hi IncSearch guibg=#87ffff
hi Search guibg=#ffaf5f
hi Todo guifg=#ffff87 guibg=#87875f
else
hi Cursor guibg=#87afd7
hi CursorIM guibg=#87afd7
hi Error guifg=#ff8787 guibg=#870000
hi IncSearch guibg=#5fd7d7
hi Search guibg=#d78700
hi Todo guifg=#d7d75f guibg=#5f5f00
endif
endif
" ----------------------------------------------------------------------------
" Messages:
" ----------------------------------------------------------------------------
hi Question guifg=fg
if s:style == "light"
if s:contrast == "low"
hi ErrorMsg guifg=#d70000
hi ModeMsg guifg=#0087ff
hi MoreMsg guifg=#0087ff
hi WarningMsg guifg=#d78700
else
hi ErrorMsg guifg=#af0000
hi ModeMsg guifg=#005faf
hi MoreMsg guifg=#005faf
hi WarningMsg guifg=#af5f00
endif
else
if s:contrast == "low"
hi ErrorMsg guifg=#d75f5f
hi ModeMsg guifg=#87afaf
hi MoreMsg guifg=#87afaf
hi WarningMsg guifg=#af875f
elseif s:contrast == "high"
hi ErrorMsg guifg=#ff8787
hi ModeMsg guifg=#afffff
hi MoreMsg guifg=#afffff
hi WarningMsg guifg=#ffaf87
else
hi ErrorMsg guifg=#ff5f5f
hi ModeMsg guifg=#afd7d7
hi MoreMsg guifg=#afd7d7
hi WarningMsg guifg=#d7875f
endif
endif
" ----------------------------------------------------------------------------
" UI:
" ----------------------------------------------------------------------------
hi ColorColumn guifg=NONE
hi Pmenu guifg=bg
hi PmenuSel guifg=fg
hi PmenuThumb guifg=fg
hi StatusLine guifg=bg
hi TabLine guifg=bg
hi TabLineSel guifg=fg
hi WildMenu guifg=fg
if s:style == "light"
hi ColorColumn guibg=#e4e4e4
hi CursorLineNr guifg=#626262 guibg=#dadada
hi FoldColumn guibg=#bcbcbc
hi Folded guibg=#bcbcbc
hi LineNr guifg=#9e9e9e guibg=#dadada
hi PmenuSel guibg=#afd7ff
hi SignColumn guibg=#d0d0d0
hi StatusLineNC guifg=#dadada
hi TabLineFill guifg=#dadada
hi VertSplit guifg=#e4e4e4
hi WildMenu guibg=#afd7ff
if s:contrast == "low"
hi FoldColumn guifg=#808080
hi Folded guifg=#808080
hi Pmenu guibg=#9e9e9e
hi PmenuSbar guifg=#9e9e9e guibg=#626262
hi PmenuThumb guibg=#9e9e9e
hi SignColumn guifg=#808080
hi StatusLine guibg=#9e9e9e
hi StatusLineNC guibg=#9e9e9e
hi TabLine guibg=#9e9e9e
hi TabLineFill guibg=#9e9e9e
hi TabLineSel guibg=#afd7ff
hi VertSplit guibg=#9e9e9e
else
hi FoldColumn guifg=#626262
hi Folded guifg=#626262
hi Pmenu guibg=#808080
hi PmenuSbar guifg=#808080 guibg=#444444
hi PmenuThumb guibg=#9e9e9e
hi SignColumn guifg=#626262
hi StatusLine guibg=#808080
hi StatusLineNC guibg=#808080
hi TabLine guibg=#808080
hi TabLineFill guibg=#808080
hi TabLineSel guibg=#afd7ff
hi VertSplit guibg=#808080
endif
else
hi ColorColumn guibg=#3a3a3a
hi CursorLineNr guifg=#9e9e9e guibg=#444444
hi FoldColumn guibg=#4e4e4e
hi Folded guibg=#4e4e4e
hi LineNr guifg=#626262 guibg=#444444
hi PmenuSel guibg=#005f87
hi SignColumn guibg=#4e4e4e
hi StatusLineNC guifg=#4e4e4e
hi TabLineFill guifg=#4e4e4e
hi VertSplit guifg=#626262
hi WildMenu guibg=#005f87
if s:contrast == "low"
hi FoldColumn guifg=#a8a8a8
hi Folded guifg=#a8a8a8
hi Pmenu guibg=#8a8a8a
hi PmenuSbar guifg=#8a8a8a guibg=#bcbcbc
hi PmenuThumb guibg=#585858
hi SignColumn guifg=#8a8a8a
hi StatusLine guibg=#8a8a8a
hi StatusLineNC guibg=#8a8a8a
hi TabLine guibg=#8a8a8a
hi TabLineFill guibg=#8a8a8a
hi TabLineSel guibg=#005f87
hi VertSplit guibg=#8a8a8a
elseif s:contrast == "high"
hi FoldColumn guifg=#c6c6c6
hi Folded guifg=#c6c6c6
hi Pmenu guibg=#bcbcbc
hi PmenuSbar guifg=#bcbcbc guibg=#dadada
hi PmenuThumb guibg=#8a8a8a
hi SignColumn guifg=#bcbcbc
hi StatusLine guibg=#bcbcbc
hi StatusLineNC guibg=#bcbcbc
hi TabLine guibg=#bcbcbc
hi TabLineFill guibg=#bcbcbc
hi TabLineSel guibg=#0087af
hi VertSplit guibg=#bcbcbc
else
hi FoldColumn guifg=#bcbcbc
hi Folded guifg=#bcbcbc
hi Pmenu guibg=#b2b2b2
hi PmenuSbar guifg=#b2b2b2 guibg=#d0d0d0
hi PmenuThumb guibg=#808080
hi SignColumn guifg=#b2b2b2
hi StatusLine guibg=#b2b2b2
hi StatusLineNC guibg=#b2b2b2
hi TabLine guibg=#b2b2b2
hi TabLineFill guibg=#b2b2b2
hi TabLineSel guibg=#005f87
hi VertSplit guibg=#b2b2b2
endif
endif
" ----------------------------------------------------------------------------
" Diff:
" ----------------------------------------------------------------------------
hi DiffAdd guifg=fg
hi DiffChange guifg=fg
hi DiffDelete guifg=fg
if s:style == "light"
hi DiffAdd guibg=#afd7af
hi DiffChange guibg=#d7d7af
hi DiffDelete guibg=#d7afaf
hi DiffText guibg=#d7d7af
if s:contrast == "low"
hi DiffText guifg=#ff8700
else
hi DiffText guifg=#d75f00
endif
else
hi DiffAdd guibg=#5f875f
hi DiffChange guibg=#87875f
hi DiffDelete guibg=#875f5f
hi DiffText guibg=#87875f
if s:contrast == "low"
hi DiffText guifg=#d7d75f
else
hi DiffText guifg=#ffff87
endif
endif
" ----------------------------------------------------------------------------
" Spelling:
" ----------------------------------------------------------------------------
if s:style == "light"
hi SpellBad guisp=#d70000
hi SpellCap guisp=#00afd7
hi SpellLocal guisp=#d7af00
hi SpellRare guisp=#5faf00
else
hi SpellBad guisp=#ff5f5f
hi SpellCap guisp=#5fafd7
hi SpellLocal guisp=#d7af5f
hi SpellRare guisp=#5faf5f
endif
" ----------------------------------------------------------------------------
" Miscellaneous:
" ----------------------------------------------------------------------------
hi Ignore guifg=bg
hi Underlined guifg=fg
" ============================================================================
" Text Emphasis:
" ============================================================================
if s:use_bold == 1
for s:item in s:bold_items
exec "hi " . s:item . " gui=bold cterm=bold term=none"
endfor
endif
if s:use_underline == 1
for s:item in s:underline_items
exec "hi " . s:item . " gui=underline cterm=underline term=none"
endfor
for s:item in s:undercurl_items
exec "hi " . s:item . " cterm=underline"
endfor
endif
for s:item in s:undercurl_items
exec "hi " . s:item . " gui=undercurl term=none"
endfor
" ============================================================================
" Cterm Colors:
" ============================================================================
for s:item in s:normal_items + s:bold_items + s:underline_items
call s:AddCterm(s:item)
endfor
for s:item in s:undercurl_items
call s:AddSpCterm(s:item)
endfor
if s:no_term_bg == 1
hi Normal ctermbg=NONE
endif
" ============================================================================
" Alternative Bold Definitions:
" ============================================================================
let s:alternative_bold_items = ["Identifier", "PreProc", "Statement",
\ "Special", "Constant", "Type"]
for s:item in s:alternative_bold_items
exec "let s:temp_gui_fg = synIDattr(synIDtrans(hlID('" . s:item .
\ "')), 'fg', 'gui')"
exec "let s:temp_cterm_fg = synIDattr(synIDtrans(hlID('" . s:item .
\ "')), 'fg', 'cterm')"
exec "hi B" . s:item . " guifg=" . s:temp_gui_fg . " ctermfg=" .
\ s:temp_cterm_fg . " gui=bold cterm=bold term=none"
endfor
" ============================================================================
" Plugin Specific Colors:
" ============================================================================
" Tagbar:
hi link TagbarAccessPublic Constant
hi link TagbarAccessProtected Type
hi link TagbarAccessPrivate PreProc
" Vimwiki:
hi link VimwikiHeader1 BIdentifier
hi link VimwikiHeader2 BPreProc
hi link VimwikiHeader3 BStatement
hi link VimwikiHeader4 BSpecial
hi link VimwikiHeader5 BConstant
hi link VimwikiHeader6 BType
" ============================================================================
" Preset Commands:
" ============================================================================
function! SetLucius(style, contrast, contrast_bg)
let g:lucius_style = a:style
let g:lucius_contrast = a:contrast
let g:lucius_contrast_bg = a:contrast_bg
endfunction
command! LuciusLight call SetLucius("light", "normal", "normal")
\ | colorscheme lucius
command! LuciusLightLowContrast call SetLucius("light", "low", "normal")
\ | colorscheme lucius
command! LuciusLightHighContrast call SetLucius("light", "high", "normal")
\ | colorscheme lucius
command! LuciusWhite call SetLucius("light", "normal", "high")
\ | colorscheme lucius
command! LuciusWhiteLowContrast call SetLucius("light", "low", "high")
\ | colorscheme lucius
command! LuciusWhiteHighContrast call SetLucius("light", "high", "high")
\ | colorscheme lucius
command! LuciusDark call SetLucius("dark", "normal", "normal")
\ | colorscheme lucius
command! LuciusDarkLowContrast call SetLucius("dark", "low", "normal")
\ | colorscheme lucius
command! LuciusDarkHighContrast call SetLucius("dark", "high", "normal")
\ | colorscheme lucius
command! LuciusBlack call SetLucius("dark", "normal", "high")
\ | colorscheme lucius
command! LuciusBlackLowContrast call SetLucius("dark", "low", "high")
\ | colorscheme lucius
command! LuciusBlackHighContrast call SetLucius("dark", "high", "high")
\ | colorscheme lucius
" vim: tw=78

View file

@ -0,0 +1,276 @@
" Vim color file
"
" Author: Tomas Restrepo <tomas@winterdom.com>
" https://github.com/tomasr/molokai
"
" Note: Based on the Monokai theme for TextMate
" by Wimer Hazenberg and its darker variant
" by Hamish Stuart Macpherson
"
hi clear
if version > 580
" no guarantees for version 5.8 and below, but this makes it stop
" complaining
hi clear
if exists("syntax_on")
syntax reset
endif
endif
let g:colors_name="molokai"
if exists("g:molokai_original")
let s:molokai_original = g:molokai_original
else
let s:molokai_original = 0
endif
hi Boolean guifg=#AE81FF
hi Character guifg=#E6DB74
hi Number guifg=#AE81FF
hi String guifg=#E6DB74
hi Conditional guifg=#F92672 gui=bold
hi Constant guifg=#AE81FF gui=bold
hi Cursor guifg=#000000 guibg=#F8F8F0
hi iCursor guifg=#000000 guibg=#F8F8F0
hi Debug guifg=#BCA3A3 gui=bold
hi Define guifg=#66D9EF
hi Delimiter guifg=#8F8F8F
hi DiffAdd guibg=#13354A
hi DiffChange guifg=#89807D guibg=#4C4745
hi DiffDelete guifg=#960050 guibg=#1E0010
hi DiffText guibg=#4C4745 gui=italic,bold
hi Directory guifg=#A6E22E gui=bold
hi Error guifg=#E6DB74 guibg=#1E0010
hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold
hi Exception guifg=#A6E22E gui=bold
hi Float guifg=#AE81FF
hi FoldColumn guifg=#465457 guibg=#000000
hi Folded guifg=#465457 guibg=#000000
hi Function guifg=#A6E22E
hi Identifier guifg=#FD971F
hi Ignore guifg=#808080 guibg=bg
hi IncSearch guifg=#C4BE89 guibg=#000000
hi Keyword guifg=#F92672 gui=bold
hi Label guifg=#E6DB74 gui=none
hi Macro guifg=#C4BE89 gui=italic
hi SpecialKey guifg=#66D9EF gui=italic
hi MatchParen guifg=#000000 guibg=#FD971F gui=bold
hi ModeMsg guifg=#E6DB74
hi MoreMsg guifg=#E6DB74
hi Operator guifg=#F92672
" complete menu
hi Pmenu guifg=#66D9EF guibg=#000000
hi PmenuSel guibg=#808080
hi PmenuSbar guibg=#080808
hi PmenuThumb guifg=#66D9EF
hi PreCondit guifg=#A6E22E gui=bold
hi PreProc guifg=#A6E22E
hi Question guifg=#66D9EF
hi Repeat guifg=#F92672 gui=bold
hi Search guifg=#000000 guibg=#FFE792
" marks
hi SignColumn guifg=#A6E22E guibg=#232526
hi SpecialChar guifg=#F92672 gui=bold
hi SpecialComment guifg=#7E8E91 gui=bold
hi Special guifg=#66D9EF guibg=bg gui=italic
if has("spell")
hi SpellBad guisp=#FF0000 gui=undercurl
hi SpellCap guisp=#7070F0 gui=undercurl
hi SpellLocal guisp=#70F0F0 gui=undercurl
hi SpellRare guisp=#FFFFFF gui=undercurl
endif
hi Statement guifg=#F92672 gui=bold
hi StatusLine guifg=#455354 guibg=fg
hi StatusLineNC guifg=#808080 guibg=#080808
hi StorageClass guifg=#FD971F gui=italic
hi Structure guifg=#66D9EF
hi Tag guifg=#F92672 gui=italic
hi Title guifg=#ef5939
hi Todo guifg=#FFFFFF guibg=bg gui=bold
hi Typedef guifg=#66D9EF
hi Type guifg=#66D9EF gui=none
hi Underlined guifg=#808080 gui=underline
hi VertSplit guifg=#808080 guibg=#080808 gui=bold
hi VisualNOS guibg=#403D3D
hi Visual guibg=#403D3D
hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold
hi WildMenu guifg=#66D9EF guibg=#000000
hi TabLineFill guifg=#1B1D1E guibg=#1B1D1E
hi TabLine guibg=#1B1D1E guifg=#808080 gui=none
if s:molokai_original == 1
hi Normal guifg=#F8F8F2 guibg=#272822
hi Comment guifg=#75715E
hi CursorLine guibg=#3E3D32
hi CursorLineNr guifg=#FD971F gui=none
hi CursorColumn guibg=#3E3D32
hi ColorColumn guibg=#3B3A32
hi LineNr guifg=#BCBCBC guibg=#3B3A32
hi NonText guifg=#75715E
hi SpecialKey guifg=#75715E
else
hi Normal guifg=#F8F8F2 guibg=#1B1D1E
hi Comment guifg=#7E8E91
hi CursorLine guibg=#293739
hi CursorLineNr guifg=#FD971F gui=none
hi CursorColumn guibg=#293739
hi ColorColumn guibg=#232526
hi LineNr guifg=#465457 guibg=#232526
hi NonText guifg=#465457
hi SpecialKey guifg=#465457
end
"
" Support for 256-color terminal
"
if &t_Co > 255
if s:molokai_original == 1
hi Normal ctermbg=234
hi CursorLine ctermbg=235 cterm=none
hi CursorLineNr ctermfg=208 cterm=none
else
hi Normal ctermfg=252 ctermbg=233
hi CursorLine ctermbg=234 cterm=none
hi CursorLineNr ctermfg=208 cterm=none
endif
hi Boolean ctermfg=135
hi Character ctermfg=144
hi Number ctermfg=135
hi String ctermfg=144
hi Conditional ctermfg=161 cterm=bold
hi Constant ctermfg=135 cterm=bold
hi Cursor ctermfg=16 ctermbg=253
hi Debug ctermfg=225 cterm=bold
hi Define ctermfg=81
hi Delimiter ctermfg=241
hi DiffAdd ctermbg=24
hi DiffChange ctermfg=181 ctermbg=239
hi DiffDelete ctermfg=162 ctermbg=53
hi DiffText ctermbg=102 cterm=bold
hi Directory ctermfg=118 cterm=bold
hi Error ctermfg=219 ctermbg=89
hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold
hi Exception ctermfg=118 cterm=bold
hi Float ctermfg=135
hi FoldColumn ctermfg=67 ctermbg=16
hi Folded ctermfg=67 ctermbg=16
hi Function ctermfg=118
hi Identifier ctermfg=208 cterm=none
hi Ignore ctermfg=244 ctermbg=232
hi IncSearch ctermfg=193 ctermbg=16
hi keyword ctermfg=161 cterm=bold
hi Label ctermfg=229 cterm=none
hi Macro ctermfg=193
hi SpecialKey ctermfg=81
hi MatchParen ctermfg=233 ctermbg=208 cterm=bold
hi ModeMsg ctermfg=229
hi MoreMsg ctermfg=229
hi Operator ctermfg=161
" complete menu
hi Pmenu ctermfg=81 ctermbg=16
hi PmenuSel ctermfg=255 ctermbg=242
hi PmenuSbar ctermbg=232
hi PmenuThumb ctermfg=81
hi PreCondit ctermfg=118 cterm=bold
hi PreProc ctermfg=118
hi Question ctermfg=81
hi Repeat ctermfg=161 cterm=bold
hi Search ctermfg=0 ctermbg=222 cterm=NONE
" marks column
hi SignColumn ctermfg=118 ctermbg=235
hi SpecialChar ctermfg=161 cterm=bold
hi SpecialComment ctermfg=245 cterm=bold
hi Special ctermfg=81
if has("spell")
hi SpellBad ctermbg=52
hi SpellCap ctermbg=17
hi SpellLocal ctermbg=17
hi SpellRare ctermfg=none ctermbg=none cterm=reverse
endif
hi Statement ctermfg=161 cterm=bold
hi StatusLine ctermfg=238 ctermbg=253
hi StatusLineNC ctermfg=244 ctermbg=232
hi StorageClass ctermfg=208
hi Structure ctermfg=81
hi Tag ctermfg=161
hi Title ctermfg=166
hi Todo ctermfg=231 ctermbg=232 cterm=bold
hi Typedef ctermfg=81
hi Type ctermfg=81 cterm=none
hi Underlined ctermfg=244 cterm=underline
hi VertSplit ctermfg=244 ctermbg=232 cterm=bold
hi VisualNOS ctermbg=238
hi Visual ctermbg=235
hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold
hi WildMenu ctermfg=81 ctermbg=16
hi Comment ctermfg=59
hi CursorColumn ctermbg=236
hi ColorColumn ctermbg=236
hi LineNr ctermfg=250 ctermbg=236
hi NonText ctermfg=59
hi SpecialKey ctermfg=59
if exists("g:rehash256") && g:rehash256 == 1
hi Normal ctermfg=252 ctermbg=234
hi CursorLine ctermbg=236 cterm=none
hi CursorLineNr ctermfg=208 cterm=none
hi Boolean ctermfg=141
hi Character ctermfg=222
hi Number ctermfg=141
hi String ctermfg=222
hi Conditional ctermfg=197 cterm=bold
hi Constant ctermfg=141 cterm=bold
hi DiffDelete ctermfg=125 ctermbg=233
hi Directory ctermfg=154 cterm=bold
hi Error ctermfg=222 ctermbg=233
hi Exception ctermfg=154 cterm=bold
hi Float ctermfg=141
hi Function ctermfg=154
hi Identifier ctermfg=208
hi Keyword ctermfg=197 cterm=bold
hi Operator ctermfg=197
hi PreCondit ctermfg=154 cterm=bold
hi PreProc ctermfg=154
hi Repeat ctermfg=197 cterm=bold
hi Statement ctermfg=197 cterm=bold
hi Tag ctermfg=197
hi Title ctermfg=203
hi Visual ctermbg=238
hi Comment ctermfg=244
hi LineNr ctermfg=239 ctermbg=235
hi NonText ctermfg=239
hi SpecialKey ctermfg=239
endif
end
" Must be at the end, because of ctermbg=234 bug.
" https://groups.google.com/forum/#!msg/vim_dev/afPqwAFNdrU/nqh6tOM87QUJ
set background=dark

View file

@ -0,0 +1,220 @@
" ==============================================================================
" Name: One Half Dark
" Author: Son A. Pham <sp@sonpham.me>
" Url: https://github.com/sonph/onehalf
" License: The MIT License (MIT)
"
" A dark vim color scheme based on Atom's One. See github.com/sonph/onehalf
" for installation instructions, a light color scheme, versions for other
" editors/terminals, and a matching theme for vim-airline.
" ==============================================================================
set background=dark
highlight clear
syntax reset
let g:colors_name="onehalfdark"
let colors_name="onehalfdark"
let s:black = { "gui": "#282c34", "cterm": "236" }
let s:red = { "gui": "#e06c75", "cterm": "168" }
let s:green = { "gui": "#98c379", "cterm": "114" }
let s:yellow = { "gui": "#e5c07b", "cterm": "180" }
let s:blue = { "gui": "#61afef", "cterm": "75" }
let s:purple = { "gui": "#c678dd", "cterm": "176" }
let s:cyan = { "gui": "#56b6c2", "cterm": "73" }
let s:white = { "gui": "#dcdfe4", "cterm": "188" }
let s:fg = s:white
let s:bg = s:black
let s:comment_fg = { "gui": "#5c6370", "cterm": "241" }
let s:gutter_bg = { "gui": "#282c34", "cterm": "236" }
let s:gutter_fg = { "gui": "#919baa", "cterm": "247" }
let s:cursor_line = { "gui": "#313640", "cterm": "237" }
let s:color_col = { "gui": "#313640", "cterm": "237" }
let s:selection = { "gui": "#474e5d", "cterm": "239" }
let s:vertsplit = { "gui": "#313640", "cterm": "237" }
function! s:h(group, fg, bg, attr)
if type(a:fg) == type({})
exec "hi " . a:group . " guifg=" . a:fg.gui . " ctermfg=" . a:fg.cterm
else
exec "hi " . a:group . " guifg=NONE cterm=NONE"
endif
if type(a:bg) == type({})
exec "hi " . a:group . " guibg=" . a:bg.gui . " ctermbg=" . a:bg.cterm
else
exec "hi " . a:group . " guibg=NONE ctermbg=NONE"
endif
if a:attr != ""
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
else
exec "hi " . a:group . " gui=NONE cterm=NONE"
endif
endfun
" User interface colors {
call s:h("Normal", s:fg, s:bg, "")
call s:h("NonText", s:fg, "", "")
call s:h("Cursor", s:bg, s:blue, "")
call s:h("CursorColumn", "", s:cursor_line, "")
call s:h("CursorLine", "", s:cursor_line, "")
call s:h("LineNr", s:gutter_fg, s:gutter_bg, "")
call s:h("CursorLineNr", s:fg, "", "")
call s:h("DiffAdd", s:green, "", "")
call s:h("DiffChange", s:yellow, "", "")
call s:h("DiffDelete", s:red, "", "")
call s:h("DiffText", s:blue, "", "")
call s:h("IncSearch", s:bg, s:yellow, "")
call s:h("Search", s:bg, s:yellow, "")
call s:h("ErrorMsg", s:fg, "", "")
call s:h("ModeMsg", s:fg, "", "")
call s:h("MoreMsg", s:fg, "", "")
call s:h("WarningMsg", s:red, "", "")
call s:h("Question", s:purple, "", "")
call s:h("Pmenu", s:bg, s:fg, "")
call s:h("PmenuSel", s:fg, s:blue, "")
call s:h("PmenuSbar", "", s:selection, "")
call s:h("PmenuThumb", "", s:fg, "")
call s:h("SpellBad", s:red, "", "")
call s:h("SpellCap", s:yellow, "", "")
call s:h("SpellLocal", s:yellow, "", "")
call s:h("SpellRare", s:yellow, "", "")
call s:h("StatusLine", s:blue, s:cursor_line, "")
call s:h("StatusLineNC", s:comment_fg, s:cursor_line, "")
call s:h("TabLine", s:comment_fg, s:cursor_line, "")
call s:h("TabLineFill", s:comment_fg, s:cursor_line, "")
call s:h("TabLineSel", s:fg, s:bg, "")
call s:h("Visual", "", s:selection, "")
call s:h("VisualNOS", "", s:selection, "")
call s:h("ColorColumn", "", s:color_col, "")
call s:h("Conceal", s:fg, "", "")
call s:h("Directory", s:blue, "", "")
call s:h("VertSplit", s:vertsplit, s:vertsplit, "")
call s:h("Folded", s:fg, "", "")
call s:h("FoldColumn", s:fg, "", "")
call s:h("SignColumn", s:fg, "", "")
call s:h("MatchParen", s:blue, "", "underline")
call s:h("SpecialKey", s:fg, "", "")
call s:h("Title", s:green, "", "")
call s:h("WildMenu", s:fg, "", "")
" }
" Syntax colors {
call s:h("Comment", s:comment_fg, "", "")
call s:h("Constant", s:cyan, "", "")
call s:h("String", s:green, "", "")
call s:h("Character", s:green, "", "")
call s:h("Number", s:yellow, "", "")
call s:h("Boolean", s:yellow, "", "")
call s:h("Float", s:yellow, "", "")
call s:h("Identifier", s:red, "", "")
call s:h("Function", s:blue, "", "")
call s:h("Statement", s:purple, "", "")
call s:h("Conditional", s:purple, "", "")
call s:h("Repeat", s:purple, "", "")
call s:h("Label", s:purple, "", "")
call s:h("Operator", s:fg, "", "")
call s:h("Keyword", s:red, "", "")
call s:h("Exception", s:purple, "", "")
call s:h("PreProc", s:yellow, "", "")
call s:h("Include", s:blue, "", "")
call s:h("Define", s:purple, "", "")
call s:h("Macro", s:purple, "", "")
call s:h("PreCondit", s:yellow, "", "")
call s:h("Type", s:yellow, "", "")
call s:h("StorageClass", s:yellow, "", "")
call s:h("Structure", s:yellow, "", "")
call s:h("Typedef", s:yellow, "", "")
call s:h("Special", s:blue, "", "")
call s:h("SpecialChar", s:fg, "", "")
call s:h("Tag", s:fg, "", "")
call s:h("Delimiter", s:fg, "", "")
call s:h("SpecialComment", s:fg, "", "")
call s:h("Debug", s:fg, "", "")
call s:h("Underlined", s:fg, "", "")
call s:h("Ignore", s:fg, "", "")
call s:h("Error", s:red, s:gutter_bg, "")
call s:h("Todo", s:purple, "", "")
" }
" Plugins {
" GitGutter
call s:h("GitGutterAdd", s:green, s:gutter_bg, "")
call s:h("GitGutterDelete", s:red, s:gutter_bg, "")
call s:h("GitGutterChange", s:yellow, s:gutter_bg, "")
call s:h("GitGutterChangeDelete", s:red, s:gutter_bg, "")
" Fugitive
call s:h("diffAdded", s:green, "", "")
call s:h("diffRemoved", s:red, "", "")
" }
" Git {
call s:h("gitcommitComment", s:comment_fg, "", "")
call s:h("gitcommitUnmerged", s:red, "", "")
call s:h("gitcommitOnBranch", s:fg, "", "")
call s:h("gitcommitBranch", s:purple, "", "")
call s:h("gitcommitDiscardedType", s:red, "", "")
call s:h("gitcommitSelectedType", s:green, "", "")
call s:h("gitcommitHeader", s:fg, "", "")
call s:h("gitcommitUntrackedFile", s:cyan, "", "")
call s:h("gitcommitDiscardedFile", s:red, "", "")
call s:h("gitcommitSelectedFile", s:green, "", "")
call s:h("gitcommitUnmergedFile", s:yellow, "", "")
call s:h("gitcommitFile", s:fg, "", "")
hi link gitcommitNoBranch gitcommitBranch
hi link gitcommitUntracked gitcommitComment
hi link gitcommitDiscarded gitcommitComment
hi link gitcommitSelected gitcommitComment
hi link gitcommitDiscardedArrow gitcommitDiscardedFile
hi link gitcommitSelectedArrow gitcommitSelectedFile
hi link gitcommitUnmergedArrow gitcommitUnmergedFile
" }
" Fix colors in neovim terminal buffers {
if has('nvim')
let g:terminal_color_0 = s:black.gui
let g:terminal_color_1 = s:red.gui
let g:terminal_color_2 = s:green.gui
let g:terminal_color_3 = s:yellow.gui
let g:terminal_color_4 = s:blue.gui
let g:terminal_color_5 = s:purple.gui
let g:terminal_color_6 = s:cyan.gui
let g:terminal_color_7 = s:white.gui
let g:terminal_color_8 = s:black.gui
let g:terminal_color_9 = s:red.gui
let g:terminal_color_10 = s:green.gui
let g:terminal_color_11 = s:yellow.gui
let g:terminal_color_12 = s:blue.gui
let g:terminal_color_13 = s:purple.gui
let g:terminal_color_14 = s:cyan.gui
let g:terminal_color_15 = s:white.gui
let g:terminal_color_background = s:bg.gui
let g:terminal_color_foreground = s:fg.gui
endif
" }

8
vimrc
View file

@ -72,13 +72,11 @@ if v:version >= 800
if has('gui_running') || $TERM =~ '^\(tmux\|st\)'
let &t_8f = "\033[38;2;%lu;%lu;%lum"
let &t_8b = "\033[48;2;%lu;%lu;%lum"
set termguicolors bg=dark
colorscheme gruvbox8
set termguicolors
colorscheme iceberg
else
let g:solarized_use16 = 1
let g:solarized_term_italics = 0
set bg=light
colorscheme solarized8
colorscheme lucius
endif
endif