dotman 0.0.3 → 0.0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dot +10 -1
  3. data/lib/dotman.rb +1 -0
  4. data/lib/dotman/collect.rb +27 -0
  5. data/lib/dotman/dotfile_collection.rb +8 -0
  6. data/lib/dotman/git.rb +0 -1
  7. data/lib/dotman/version.rb +1 -1
  8. data/spec/data/Timbinous_dotfiles/.bashrc +121 -0
  9. data/spec/data/Timbinous_dotfiles/.gitignore +5 -0
  10. data/spec/data/Timbinous_dotfiles/.tmux.conf +15 -0
  11. data/spec/data/Timbinous_dotfiles/.vim/autoload/pathogen.vim +245 -0
  12. data/spec/data/Timbinous_dotfiles/.vim/bundle/.gitkeep +0 -0
  13. data/spec/data/Timbinous_dotfiles/.vim/colors/Black.vim +16 -0
  14. data/spec/data/Timbinous_dotfiles/.vim/colors/Dark.vim +63 -0
  15. data/spec/data/Timbinous_dotfiles/.vim/colors/autumnleaf.vim +154 -0
  16. data/spec/data/Timbinous_dotfiles/.vim/colors/c.vim +32 -0
  17. data/spec/data/Timbinous_dotfiles/.vim/colors/darkzen.vim +25 -0
  18. data/spec/data/Timbinous_dotfiles/.vim/colors/grb.vim +13 -0
  19. data/spec/data/Timbinous_dotfiles/.vim/colors/grb.vim~ +13 -0
  20. data/spec/data/Timbinous_dotfiles/.vim/colors/grb2.vim +59 -0
  21. data/spec/data/Timbinous_dotfiles/.vim/colors/grb256.vim +32 -0
  22. data/spec/data/Timbinous_dotfiles/.vim/colors/grb3.vim +23 -0
  23. data/spec/data/Timbinous_dotfiles/.vim/colors/grb4.vim +17 -0
  24. data/spec/data/Timbinous_dotfiles/.vim/colors/grblight.vim +15 -0
  25. data/spec/data/Timbinous_dotfiles/.vim/colors/grblight.vim~ +14 -0
  26. data/spec/data/Timbinous_dotfiles/.vim/colors/ir_black.vim +212 -0
  27. data/spec/data/Timbinous_dotfiles/.vim/colors/moria.vim +227 -0
  28. data/spec/data/Timbinous_dotfiles/.vim/colors/pyte.vim +92 -0
  29. data/spec/data/Timbinous_dotfiles/.vim/colors/redstring.vim +26 -0
  30. data/spec/data/Timbinous_dotfiles/.vim/colors/xterm16.vim +811 -0
  31. data/spec/data/Timbinous_dotfiles/.vim/spell/en.utf-8.add +5 -0
  32. data/spec/data/Timbinous_dotfiles/.vim/spell/en.utf-8.add.spl +0 -0
  33. data/spec/data/Timbinous_dotfiles/.vimrc +70 -0
  34. data/spec/data/Timbinous_dotfiles/.zshrc +62 -0
  35. data/spec/data/Timbinous_dotfiles/symlinkify +58 -0
  36. data/spec/data/Timbinous_dotfiles/tim.zsh-theme +29 -0
  37. data/spec/dotman/collect_spec.rb +59 -0
  38. data/spec/integration/dotfile_collection_integration_spec.rb +18 -4
  39. data/spec/integration/git_integration_spec.rb +6 -10
  40. data/spec/integration/user_integration_spec.rb +12 -5
  41. data/spec/spec_helper.rb +9 -1
  42. metadata +63 -2
@@ -0,0 +1,92 @@
1
+
2
+ set background=light
3
+
4
+ hi clear
5
+ if exists("syntax_on")
6
+ syntax reset
7
+ endif
8
+
9
+ let colors_name = "pyte"
10
+
11
+ if version >= 700
12
+ hi CursorLine guibg=#f6f6f6
13
+ hi CursorColumn guibg=#eaeaea
14
+ hi MatchParen guifg=white guibg=#80a090 gui=bold
15
+
16
+ "Tabpages
17
+ hi TabLine guifg=black guibg=#b0b8c0 gui=italic
18
+ hi TabLineFill guifg=#9098a0
19
+ hi TabLineSel guifg=black guibg=#f0f0f0 gui=italic,bold
20
+
21
+ "P-Menu (auto-completion)
22
+ hi Pmenu guifg=white guibg=#808080
23
+ "PmenuSel
24
+ "PmenuSbar
25
+ "PmenuThumb
26
+ endif
27
+ "
28
+ " Html-Titles
29
+ hi Title guifg=#202020 gui=bold
30
+ hi Underlined guifg=#202020 gui=underline
31
+
32
+
33
+ hi Cursor guifg=black guibg=#b0b4b8
34
+ hi lCursor guifg=black guibg=white
35
+ hi LineNr guifg=#ffffff guibg=#c0d0e0
36
+
37
+ hi Normal guifg=#202020 guibg=#f0f0f0
38
+
39
+ hi StatusLine guifg=white guibg=#8090a0 gui=bold,italic
40
+ hi StatusLineNC guifg=#506070 guibg=#a0b0c0 gui=italic
41
+ hi VertSplit guifg=#a0b0c0 guibg=#a0b0c0 gui=NONE
42
+
43
+ hi Folded guifg=#708090 guibg=#c0d0e0
44
+
45
+ hi NonText guifg=#c0c0c0 guibg=#e0e0e0
46
+ " Kommentare
47
+ hi Comment guifg=#a0b0c0 gui=italic
48
+
49
+ " Konstanten
50
+ hi Constant guifg=#a07040
51
+ hi String guifg=#4070a0
52
+ hi Number guifg=#40a070
53
+ hi Float guifg=#70a040
54
+ "hi Statement guifg=#0070e0 gui=NONE
55
+ " Python: def and so on, html: tag-names
56
+ hi Statement guifg=#007020 gui=bold
57
+
58
+
59
+ " HTML: arguments
60
+ hi Type guifg=#e5a00d gui=italic
61
+ " Python: Standard exceptions, True&False
62
+ hi Structure guifg=#007020 gui=italic
63
+ hi Function guifg=#06287e gui=italic
64
+
65
+ hi Identifier guifg=#5b3674 gui=italic
66
+
67
+ hi Repeat guifg=#7fbf58 gui=bold
68
+ hi Conditional guifg=#4c8f2f gui=bold
69
+
70
+ " Cheetah: #-Symbol, function-names
71
+ hi PreProc guifg=#1060a0 gui=NONE
72
+ " Cheetah: def, for and so on, Python: Decorators
73
+ hi Define guifg=#1060a0 gui=bold
74
+
75
+ hi Error guifg=red guibg=white gui=bold,underline
76
+ hi Todo guifg=#a0b0c0 guibg=NONE gui=italic,bold,underline
77
+
78
+ " Python: %(...)s - constructs, encoding
79
+ hi Special guifg=#70a0d0 gui=italic
80
+
81
+ hi Operator guifg=#408010
82
+
83
+ " color of <TAB>s etc...
84
+ hi SpecialKey guifg=#d8a080 guibg=#e8e8e8 gui=italic
85
+
86
+ " Diff
87
+ hi DiffChange guifg=NONE guibg=#e0e0e0 gui=italic,bold
88
+ hi DiffText guifg=NONE guibg=#f0c8c8 gui=italic,bold
89
+ hi DiffAdd guifg=NONE guibg=#c0e0d0 gui=italic,bold
90
+ hi DiffDelete guifg=NONE guibg=#f0e0b0 gui=italic,bold
91
+
92
+
@@ -0,0 +1,26 @@
1
+ " Vim color file
2
+ " Maintainer: Connor Berry <connorberry@yahoo.com>
3
+ " Last Change: 2006/05/25
4
+ " Version: 1.0
5
+
6
+ set background=dark
7
+ highlight clear
8
+ if exists("syntax on")
9
+ syntax reset
10
+ endif
11
+
12
+ let g:colors_name = "redstring"
13
+
14
+ highlight Normal term=none ctermfg=grey cterm=none ctermbg=black guifg=white gui=none guibg=black
15
+ highlight Comment term=none ctermfg=DarkGrey guifg=DarkGrey
16
+ highlight Constant term=none ctermfg=red cterm=none guifg=red gui=none
17
+ highlight Special term=none ctermfg=red cterm=bold guifg=red gui=bold
18
+ highlight Identifier term=none ctermfg=lightgreen cterm=none guifg=lightgreen gui=none
19
+ highlight Statement term=bold ctermfg=cyan cterm=bold guifg=cyan gui=bold
20
+ highlight Operator term=bold ctermfg=cyan cterm=bold guifg=cyan gui=bold
21
+ highlight PreProc term=bold ctermfg=lightgreen cterm=none guifg=green gui=none
22
+ highlight Type term=bold ctermfg=lightgreen cterm=none guifg=lightgreen gui=none
23
+ highlight String term=none ctermfg=red cterm=none guifg=red gui=none
24
+ highlight Number term=none ctermfg=red cterm=none guifg=red gui=none
25
+
26
+ " vim:ts=2:sw=2:et
@@ -0,0 +1,811 @@
1
+ " xterm16-v2.43: Vim color scheme file
2
+ " Maintainer: Gautam Iyer <gautam@math.uchicago.edu>
3
+ " Created: Thu 16 Oct 2003 06:17:47 PM CDT
4
+ " Modified: Tue 12 Sep 2006 11:19:35 AM PDT
5
+ "
6
+ " Adjustable color scheme for GUI/Terminal vim.
7
+
8
+ let s:cpo_save = &cpo
9
+ set cpo&vim " line continuation is used
10
+
11
+ hi clear
12
+
13
+ if exists('syntax_on')
14
+ syntax reset
15
+ endif
16
+ let colors_name = 'xterm16'
17
+
18
+ " {{{1 Local function definitions
19
+ " {{{2 tohex(n): Convert a number to a 2 digit hex
20
+ let s:hex = '0123456789abcdef'
21
+ function s:tohex( n)
22
+ return a:n > 255 ? 'ff' : s:hex[a:n / 16] . s:hex[a:n % 16]
23
+ endfunction
24
+
25
+ " {{{2 extractRGB( string): Extract r,g,b components from string into s:c1,2,3
26
+ function s:extractRGB( string)
27
+ if a:string =~ '^#[0-9a-f]\{6\}$'
28
+ " Colors in hex values
29
+ let s:c1 = '0x' . strpart(a:string, 1, 2)
30
+ let s:c2 = '0x' . strpart(a:string, 3, 2)
31
+ let s:c3 = '0x' . strpart(a:string, 5, 2)
32
+
33
+ elseif a:string =~ '^\d\{3\}$'
34
+ " Colors in cterm values
35
+ let s:c1 = s:guilevel( a:string[0])
36
+ let s:c2 = s:guilevel( a:string[1])
37
+ let s:c3 = s:guilevel( a:string[2])
38
+
39
+ elseif a:string =~ '^[lmh][0-9]\{6\}'
40
+ " Colors in propotions of low / med / high
41
+ if exists('s:'.a:string[0])
42
+ let l:level = s:{a:string[0]}
43
+ let s:c1 = l:level * strpart(a:string, 1, 2) / 50
44
+ let s:c2 = l:level * strpart(a:string, 3, 2) / 50
45
+ let s:c3 = l:level * strpart(a:string, 5, 2) / 50
46
+ else
47
+ throw 'xterm16 Error: Use of propotional intensities before absolute intensities'
48
+ endif
49
+ else
50
+ throw 'xterm16 Error: Brightness / color "'. a:string . '" badly formed.'
51
+ endif
52
+ endfunction
53
+
54
+ " {{{2 guilevel(n) : Get the gui intensity of a given cterm intensity
55
+ function s:guilevel( n)
56
+ return '0x'.s:ccube[2*a:n].s:ccube[2*a:n + 1]
57
+ endfunction
58
+
59
+ " {{{2 ctermlevel(n) : Get the cterm intensity of a given gui intensity
60
+ function s:ctermlevel( n)
61
+ " Xterm color cube intensities: 00, 5f, 87, af, d7, ff
62
+ " Rxvt color cube: 00, 2a, 55, 7f, aa, d4
63
+
64
+ " cinterval should have the terminal intervals.
65
+ let l:terml = 0
66
+ while l:terml < 5
67
+ if a:n < '0x'.s:cinterval[2 * l:terml].s:cinterval[2 * l:terml + 1]
68
+ return l:terml
69
+ endif
70
+
71
+ let l:terml = l:terml + 1
72
+ endwhile
73
+ return 5
74
+ endfunction
75
+
76
+ " {{{2 guicolor( r, g, b): Return the gui color with intensities r,g,b
77
+ function s:guicolor( r, g, b)
78
+ return '#' . s:tohex(a:r) . s:tohex(a:g) . s:tohex(a:b)
79
+ endfunction
80
+
81
+ " {{{2 ctermcolor( r, g, b): Return the xterm-256 color with intensities r, g, b
82
+ function s:ctermcolor( r, g, b)
83
+ if a:r == a:g && a:r == a:b
84
+ " Use the greyscale ramp. The greyscale ramp starts from color 232
85
+ " with grey 8, and procedes in increments of 10 upto grey 238 (0xee)
86
+ if a:r <= 4
87
+ return 16
88
+ elseif a:r <= 243
89
+ return (a:r - 4) / 10 + 232
90
+ else
91
+ " Let's check if the last color in ccube is large enough.
92
+ " return (s:termtype == 'xterm' && a:r > 247) ? 231 : 255
93
+ let l:l5 = s:guilevel(5)
94
+ return ( l:l5 > 0xee && a:r > (l:l5 + 0xee)/2 ) ? 231 : 255
95
+ endif
96
+ else
97
+ " Use the rgb cube.
98
+ return s:ctermlevel(a:r) * 36 + s:ctermlevel(a:g) * 6 + s:ctermlevel(a:b) + 16
99
+ endif
100
+ endfunction
101
+
102
+ " {{{2 setcolor( name, r, g, b): Set the script variables gui_name and cterm_name
103
+ function s:setcolor( name, r, g, b)
104
+ if exists('g:xterm16_'.a:name)
105
+ " Use user-defined color settings (from global variable)
106
+ call s:extractRGB( g:xterm16_{a:name})
107
+
108
+ let s:gui_{a:name} = s:guicolor( s:c1, s:c2, s:c3)
109
+ let s:cterm_{a:name} = s:ctermcolor( s:c1, s:c2, s:c3)
110
+ else
111
+ " Set the GUI / cterm color from r,g,b
112
+ let s:gui_{a:name} = s:guicolor( a:r, a:g, a:b)
113
+ let s:cterm_{a:name} = ( &t_Co == 256 || has('gui_running') )
114
+ \ ? s:ctermcolor( a:r, a:g, a:b) : a:name
115
+ endif
116
+
117
+ " Add the color to palette
118
+ let g:xterm16_palette = g:xterm16_palette . "\n" . s:gui_{a:name} . ', cterm ' . s:cterm_{a:name} . ' : ' . a:name
119
+ endfunction
120
+
121
+ " {{{2 getcolor( group, globalvar, colorname): if globvar exists, returns that
122
+ " color. if not returns the color in cname
123
+ function s:getcolor( globvar, cname)
124
+ " hopefully someone set ctype before getting here. ctype should either be
125
+ " "gui" or "cterm"
126
+
127
+ if exists( a:globvar)
128
+ if exists( 's:'.s:ctype.'_'.{a:globvar})
129
+ return s:{s:ctype}_{{a:globvar}}
130
+ else
131
+ call s:extractRGB( {a:globvar})
132
+ return s:{s:ctype}color( s:c1, s:c2, s:c3)
133
+ endif
134
+ else
135
+ return s:{s:ctype}_{a:cname}
136
+ endif
137
+ endfunction
138
+
139
+ " {{{2 use_guiattr( nattrs, n ): Should s:hi use the n'th attr for GUI hl.
140
+ function s:use_guiattr( nattrs, n )
141
+ " If guisp is specified in vim6, then don't use any GUI attributes.
142
+ " Otherwise use GUI attributes if GUI is running and they are specified.
143
+ if !has('gui_running') ||
144
+ \ a:nattrs < a:n ||
145
+ \ ( v:version < 700 && a:nattrs >= 4 )
146
+ " Don't use GUI attributes
147
+ return 0
148
+ else
149
+ " Use GUI attributes
150
+ return 1
151
+ endif
152
+ endfunction
153
+
154
+ " {{{2 hi( group, attr, fg, bg): Set the gui/cterm highlighting groups
155
+ "
156
+ " group - groupname.
157
+ " attr - attributes.
158
+ " fg/bg color name.
159
+ "
160
+ " Optionally can call it as
161
+ "
162
+ " hi( group, attr, fg, bg, guiattr, guifg, guibg, guisp )
163
+ "
164
+ " where all the gui options are optional. If provided, they override the term
165
+ " colors.
166
+ function s:hi( group, attr, fg, bg, ...)
167
+ if has('gui_running') || &t_Co == 256
168
+ " For gui's and 256 color terminals
169
+ let l:fg = s:getcolor( 'g:xterm16fg_'.a:group,
170
+ \ s:use_guiattr( a:0, 2) ? a:2 : a:fg)
171
+ let l:bg = s:getcolor( 'g:xterm16bg_'.a:group,
172
+ \ s:use_guiattr( a:0, 3) ? a:3 : a:bg)
173
+
174
+ if exists('g:xterm16attr_' . a:group)
175
+ let l:attr = g:xterm16attr_{a:group}
176
+ else
177
+ let l:attr = s:use_guiattr( a:0, 1) ? a:1 : a:attr
178
+ endif
179
+
180
+ exec 'hi' a:group
181
+ \ s:ctype.'='.l:attr
182
+ \ s:ctype.'fg='.l:fg
183
+ \ s:ctype.'bg='.l:bg
184
+
185
+ " Define guisp if specified for the gui (Vim7 upwards only).
186
+ if v:version >= 700 && has('gui_running') && a:0 >= 4
187
+ let l:sp = s:getcolor( 'g:xterm16sp_'.a:group, a:4 )
188
+ exec 'hi' a:group s:ctype.'sp='.l:sp
189
+ endif
190
+ else
191
+ " for consoles / 16 color junkies
192
+ exec 'hi' a:group 'cterm='.a:attr 'ctermfg='.a:fg 'ctermbg='.a:bg
193
+ endif
194
+ endfunction
195
+
196
+ " {{{2 set_brightness( default): Set s:brightness based on default
197
+ function s:set_brightness( default)
198
+ let s:brightness = ( exists('g:xterm16_brightness')
199
+ \ && g:xterm16_brightness != 'default') ?
200
+ \ g:xterm16_brightness : a:default
201
+ if s:colormap == 'allblue'
202
+ if s:brightness == 'high'
203
+ let s:brightness = '#afafff' " 335
204
+ elseif s:brightness == 'med'
205
+ let s:brightness = '#8787d7' " 224
206
+ elseif s:brightness == 'low'
207
+ let s:brightness = '#5f5faf' " 113
208
+ endif
209
+ elseif s:colormap == 'softlight'
210
+ if s:brightness == 'high'
211
+ let s:brightness = '#ff87af' " 523
212
+ elseif s:brightness == 'med'
213
+ let s:brightness = '#d75f87' " 412
214
+ elseif s:brightness == 'low'
215
+ let s:brightness = '#af5f87' " 312
216
+ endif
217
+ else
218
+ if s:brightness == 'high'
219
+ let s:brightness = '#afd7ff' " 345
220
+ elseif s:brightness == 'med'
221
+ let s:brightness = '#87afd7' " 234
222
+ elseif s:brightness == 'low'
223
+ let s:brightness = '#5f87af' " 123
224
+ endif
225
+ endif
226
+ endfunction
227
+
228
+ " {{{1 Global functions and initialisations.
229
+ command! -nargs=* Brightness
230
+ \ if Brightness(<f-args>) <bar>
231
+ \ colo xterm16 <bar>
232
+ \ endif
233
+
234
+ " {{{2 Brightness( brightness, colormap)
235
+ function! Brightness(...)
236
+ if a:0 == 0
237
+ echo "Brightness: ".s:brightness.", Colormap: ".s:colormap
238
+ return 0
239
+ elseif a:0 > 2
240
+ echoerr 'Too many arguements.'
241
+ return 0
242
+ endif
243
+
244
+ let g:xterm16_brightness = a:1
245
+ if a:0 == 2
246
+ let g:xterm16_colormap = a:2
247
+ endif
248
+
249
+ return 1
250
+ endfunction
251
+ " }}}1
252
+
253
+ try
254
+ " {{{1 Setup defaults
255
+ " {{{2 set ctype (to cterm / gui) to be the color type
256
+ let s:ctype = has('gui_running') ? 'gui' : 'cterm'
257
+ " {{{2 Obtain intensity levels of the 6 terminal colors in s:ccube
258
+ " The 2ith and 2i+1th charecters in ccube are the hex digits of the
259
+ " intensity of the ith (0-5) term level. xterm and rxvt set up the default
260
+ " color cube differently, so we have to consider them separately.
261
+
262
+ " First check for a user specified color cube.
263
+ if exists('g:xterm16_ccube')
264
+ let s:ccube = g:xterm16_ccube
265
+
266
+ " No user specified color cube given. Try and guess from xterm16_termtype
267
+ elseif ( exists('g:xterm16_termtype') && g:xterm16_termtype == 'rxvt') ||
268
+ \ ( !exists('g:xterm16_termtype')
269
+ \ && &term =~ '^rxvt'
270
+ \ && $MRXVT_TABTITLE == "" )
271
+ " color cube for "rxvt". Make sure we're not running mrxvt (by
272
+ " checking that the MRXVT_TABTITLE variable is empty).
273
+ let s:ccube = "002a557faad4"
274
+ else
275
+ " default to xterm if nothing else is specified.
276
+ let s:ccube ="005f87afd7ff"
277
+ endif
278
+
279
+ " s:cinterval will be the intervals of intensities which get mapped to
280
+ " term color i. i.e. colors between 0 -- cinterval(0) have level 0.
281
+ " between cinterval(0) -- cinterval(1) have level 1, etc. max level is 5,
282
+ " so anything higher than cinterval(4) has level 5.
283
+ let s:cinterval = ""
284
+ let s:lower = "00"
285
+ let s:i = 1
286
+ while s:i < 6
287
+ let s:upper = s:ccube[2*s:i] . s:ccube[2*s:i + 1]
288
+ let s:cinterval = s:cinterval . s:tohex( (('0x'.s:lower) + ('0x'.s:upper))/2 )
289
+ let s:lower = s:upper
290
+ let s:i = s:i + 1
291
+ endwhile
292
+
293
+ " {{{2 Get colormap defaults in "s:colormap"
294
+ " On a terminal (without 256 colors), use "standard" colormap. Otherwise
295
+ " use value from "g:xterm16_colormap" if exists, or "soft" as default.
296
+ if !has('gui_running') && &t_Co != 256
297
+ let s:colormap = 'standard'
298
+ elseif exists('g:xterm16_colormap')
299
+ let s:colormap = g:xterm16_colormap
300
+ else
301
+ " "soft" used to be the default, but "allblue" is much better.
302
+ let s:colormap = 'allblue'
303
+ endif
304
+
305
+ " {{{2 Redefine a few colors for CRT monitors and set brightness
306
+ if s:colormap == 'allblue'
307
+ call s:set_brightness( '#8787d7' ) " 224
308
+ elseif s:colormap == 'softlight'
309
+ call s:set_brightness( '#d75f87' ) " 412
310
+ elseif exists('g:xterm16_CRTColors')
311
+ " "standard" or "soft" colormaps
312
+ if s:colormap == 'standard'
313
+ let g:xterm16_darkblue = 'h000050'
314
+ let g:xterm16_blue = 'h002550'
315
+ let g:xterm16_grey = 'm474747'
316
+
317
+ unlet! g:xterm16_skyblue g:xterm16_green g:xterm16_bluegreen
318
+
319
+ " give the original xterm16 feel
320
+ call s:set_brightness( '#80cdff')
321
+ else
322
+ " "soft" colormap
323
+ let g:xterm16_skyblue = 'h003850'
324
+ let g:xterm16_green = 'm315000'
325
+ let g:xterm16_bluegreen = 'm005031'
326
+
327
+ unlet! g:xterm16_darkblue g:xterm16_blue g:xterm16_grey
328
+
329
+ " call s:set_brightness ( '245')
330
+ " call s:set_brightness('high')
331
+ call s:set_brightness('#87d7ff') " 245
332
+ endif
333
+ else
334
+ " "standard" or "soft" colormaps with LCD colors
335
+ call s:set_brightness( '#5fafd7') " 134
336
+ endif
337
+
338
+ unlet! s:c1 s:c2 s:c3
339
+ call s:extractRGB(s:brightness)
340
+ let s:l = s:c1
341
+ let s:m = s:c2
342
+ let s:h = s:c3
343
+
344
+ " {{{2 Set a bright green cursor on all colormaps except softlight
345
+ if !exists('g:xterm16bg_Cursor')
346
+ if s:colormap == 'softlight'
347
+ let g:xterm16fg_Cursor = '#ffffff'
348
+ else
349
+ let g:xterm16bg_Cursor = '#00ff00'
350
+ endif
351
+ endif
352
+
353
+ " {{{2 Set the current pallete:
354
+ let g:xterm16_palette = 'Current palette (Brightness: '.s:brightness. ', Colormap: '.s:colormap.')'
355
+
356
+ " {{{1 Define colors and highlighting groups based on "s:colormap"
357
+ let s:cterm_none = 'NONE'
358
+ let s:gui_none = 'NONE'
359
+
360
+ " Set the background based on the colormap. 'softlight' is the only
361
+ " colormap with a light background
362
+ if s:colormap == 'softlight'
363
+ set bg=light
364
+ else
365
+ set bg=dark
366
+ endif
367
+
368
+ if s:colormap == 'standard'
369
+ " {{{2 Original colormap. 8 standard colors, and 8 brighter ones.
370
+ call s:setcolor( 'black', 0 , 0 , 0 )
371
+ call s:setcolor( 'darkred', s:m , 0 , 0 )
372
+ call s:setcolor( 'darkgreen', 0 , s:m , 0 )
373
+ call s:setcolor( 'darkyellow', s:m , s:m , 0 )
374
+ call s:setcolor( 'darkblue', 0 , 0 , s:m )
375
+ call s:setcolor( 'darkmagenta', s:m , 0 , s:m )
376
+ call s:setcolor( 'darkcyan', 0 , s:m , s:m )
377
+ call s:setcolor( 'grey', s:m*44/50, s:m*44/50, s:m*44/50)
378
+
379
+ call s:setcolor( 'darkgrey', s:l , s:l , s:l )
380
+ call s:setcolor( 'red', s:h , 0 , 0 )
381
+ call s:setcolor( 'green', 0 , s:h , 0 )
382
+ call s:setcolor( 'yellow', s:h , s:h , 0 )
383
+ call s:setcolor( 'blue', 0 , 0 , s:h )
384
+ call s:setcolor( 'magenta', s:h , 0 , s:h )
385
+ call s:setcolor( 'cyan', 0 , s:h , s:h )
386
+ call s:setcolor( 'white', s:h , s:h , s:h )
387
+
388
+ " {{{2 Highlighting groups for standard colors
389
+ call s:hi( 'Normal' , 'none' , 'grey' , 'black' )
390
+
391
+ call s:hi( 'Cursor' , 'none' , 'black' , 'green' )
392
+ call s:hi( 'CursorColumn', 'none' , 'none' , 'darkgrey' )
393
+ call s:hi( 'CursorLine' , 'none' , 'none' , 'darkgrey' )
394
+ call s:hi( 'DiffAdd' , 'none' , 'darkblue' , 'darkgreen' )
395
+ call s:hi( 'DiffChange' , 'none' , 'black' , 'darkyellow')
396
+ call s:hi( 'DiffDelete' , 'none' , 'darkblue' , 'none' )
397
+ call s:hi( 'DiffText' , 'none' , 'darkred' , 'darkyellow')
398
+ call s:hi( 'Directory' , 'none' , 'cyan' , 'none' )
399
+ call s:hi( 'ErrorMsg' , 'none' , 'white' , 'darkred' )
400
+ call s:hi( 'FoldColumn' , 'none' , 'yellow' , 'darkblue' )
401
+ call s:hi( 'Folded' , 'none' , 'yellow' , 'darkblue' )
402
+ call s:hi( 'IncSearch' , 'none' , 'grey' , 'darkblue' )
403
+ call s:hi( 'LineNr' , 'none' , 'yellow' , 'none' )
404
+ call s:hi( 'MatchParen' , 'bold' , 'none' , 'none' )
405
+ call s:hi( 'MoreMsg' , 'bold' , 'green' , 'none' )
406
+ call s:hi( 'NonText' , 'none' , 'blue' , 'none' )
407
+ call s:hi( 'Pmenu' , 'none' , 'black' , 'grey' )
408
+ call s:hi( 'PmenuSel' , 'none' , 'none' , 'darkblue' )
409
+ call s:hi( 'PmenuSbar' , 'none' , 'none' , 'darkgrey' )
410
+ call s:hi( 'PmenuThumb' , 'none' , 'none' , 'white' )
411
+ call s:hi( 'Question' , 'none' , 'green' , 'none' )
412
+ call s:hi( 'Search' , 'none' , 'black' , 'darkcyan' )
413
+ call s:hi( 'SignColumn' , 'none' , 'darkmagenta', 'darkgrey' )
414
+ call s:hi( 'SpecialKey' , 'none' , 'blue' , 'none' )
415
+ call s:hi( 'StatusLine' , 'none' , 'darkblue' , 'grey' )
416
+ call s:hi( 'StatusLineNC', 'reverse', 'none' , 'none' )
417
+ call s:hi( 'TabLineFill' , 'none' , 'black' , 'darkgrey' )
418
+ call s:hi( 'TabLine' , 'none' , 'black' , 'darkgrey' )
419
+ call s:hi( 'TabLineSel' , 'bold' , 'none' , 'none' )
420
+ call s:hi( 'Title' , 'none' , 'magenta' , 'none' )
421
+ call s:hi( 'Visual' , 'none' , 'none' , 'darkblue' )
422
+ call s:hi( 'VisualNOS' , 'none' , 'none' , 'darkgrey' )
423
+ call s:hi( 'WarningMsg' , 'bold' , 'red' , 'none' )
424
+ call s:hi( 'WildMenu' , 'none' , 'darkmagenta', 'darkyellow')
425
+
426
+ call s:hi( 'Comment' , 'none' , 'darkred' , 'none' )
427
+ call s:hi( 'Constant' , 'none' , 'darkyellow' , 'none' )
428
+ call s:hi( 'Error' , 'none' , 'white' , 'red' )
429
+ call s:hi( 'Identifier' , 'none' , 'darkcyan' , 'none' )
430
+ call s:hi( 'Ignore' , 'none' , 'darkgrey' , 'none' )
431
+ call s:hi( 'PreProc' , 'none' , 'blue' , 'none' )
432
+ call s:hi( 'Special' , 'none' , 'darkgreen' , 'none' )
433
+ call s:hi( 'Statement' , 'none' , 'cyan' , 'none' )
434
+ call s:hi( 'Todo' , 'none' , 'black' , 'yellow' )
435
+ call s:hi( 'Type' , 'none' , 'green' , 'none' )
436
+ call s:hi( 'Underlined' , 'none' , 'darkmagenta', 'none' )
437
+
438
+ " {{{2 Spelling highlighting groups.
439
+ call s:hi( 'SpellBad' , 'bold,underline', 'none', 'none' ,
440
+ \ 'undercurl' , 'none', 'none' ,
441
+ \ 'darkred' )
442
+ call s:hi( 'SpellCap' , 'bold' , 'none', 'none' ,
443
+ \ 'undercurl' , 'none', 'none' ,
444
+ \ 'blue' )
445
+ call s:hi( 'SpellLocal', 'underline' , 'none', 'none' ,
446
+ \ 'undercurl' , 'none', 'none' ,
447
+ \ 'cyan' )
448
+ call s:hi( 'SpellRare' ,'underline' , 'none', 'none' ,
449
+ \ 'undercurl' , 'none', 'none' ,
450
+ \ 'darkyellow' )
451
+
452
+ " {{{2 Define html highlighting groups for standard colors.
453
+ if !exists("g:xterm16_NoHtmlColors")
454
+ call s:hi( 'htmlBold', 'none', 'white', 'none', 'bold', 'none')
455
+ call s:hi( 'htmlItalic', 'none', 'yellow', 'none', 'italic', 'none')
456
+ call s:hi( 'htmlUnderline', 'none', 'darkmagenta', 'none', 'underline', 'none')
457
+ call s:hi( 'htmlBoldItalic', 'bold', 'yellow', 'none', 'bold,italic', 'none')
458
+ call s:hi( 'htmlBoldUnderline', 'bold', 'magenta', 'none', 'bold,underline', 'none')
459
+ call s:hi( 'htmlUnderlineItalic', 'none', 'magenta', 'none', 'underline,italic', 'none')
460
+ call s:hi( 'htmlBoldUnderlineItalic', 'bold', 'white', 'none', 'bold,underline,italic', 'none')
461
+
462
+ hi! link htmlLink PreProc
463
+ endif
464
+ " {{{2 Remap darkblue on linux consoles
465
+ if !exists("g:xterm16_NoRemap") && &term =~# (exists("g:xterm16_TermRegexp") ? xterm16_TermRegexp : "linux")
466
+ hi! link PreProc Underlined
467
+ endif
468
+ " }}}2
469
+ elseif s:colormap == 'soft' || s:colormap == 'softlight'
470
+ " {{{2 "soft" / "softlight" colormap.
471
+ " Mix and use similar intensity colors. Only drawback is a slightly
472
+ " gaudy appearance (which is why I switched to the "allblue"
473
+ " colormap).
474
+ "
475
+ " The "softlight" colormap is a colormap with a whiteish background
476
+ " for web hosting or when there's a strong glare ...
477
+
478
+ " Background colors common to softlight / soft colormaps
479
+ call s:setcolor( 'black' , 0 , 0 , 0 )
480
+
481
+ " call s:setcolor( 'grey' , s:l/2 , s:l/2 , s:l/2 )
482
+ " call s:setcolor( 'lightgrey' , 2*s:l/3 , 2*s:l/3 , 2*s:l/3 )
483
+
484
+ " Foreground colors common to softlight / soft colormaps
485
+ call s:setcolor( 'lightbrown' , s:h , s:h/2 , 0 )
486
+ call s:setcolor( 'magenta' , s:h*3/4 , 0 , s:h )
487
+ call s:setcolor( 'red' , s:h , 0 , 0 )
488
+ call s:setcolor( 'yellow' , s:m , s:m , 0 )
489
+
490
+ if s:colormap == "soft"
491
+ " Background colors for colormap with a dark background
492
+ call s:setcolor( 'darkblue' , 0 , 0 , s:l )
493
+ call s:setcolor( 'darkcyan' , 0 , s:l , s:l )
494
+ call s:setcolor( 'darkred' , s:l , 0 , 0 )
495
+ call s:setcolor( 'darkyellow', s:l , s:l , 0 )
496
+ call s:setcolor( 'darkgrey' , s:l/3 , s:l/3 , s:l/3 )
497
+ call s:setcolor( 'grey' , s:l/2 , s:l/2 , s:l/2 )
498
+ call s:setcolor( 'lightgrey' , s:l , s:l , s:l )
499
+
500
+ " Foreground colors for colormap with a dark background
501
+ call s:setcolor( 'bluegreen' , 0 , s:m , s:m*38/50 )
502
+ call s:setcolor( 'cyan' , 0 , s:m , s:m )
503
+ call s:setcolor( 'green' , s:m*38/50 , s:m , 0 )
504
+ call s:setcolor( 'purple' , s:h*27/50 , s:h*27/50 , s:h )
505
+ call s:setcolor( 'skyblue' , 0 , s:h*27/50 , s:h )
506
+ call s:setcolor( 'white' , s:m*44/50 , s:m*44/50 , s:m*44/50 )
507
+ else
508
+ " Background colors for colormap with a light background
509
+ call s:setcolor( 'darkblue' , s:l*27/50 , s:l*27/50 , s:l )
510
+ call s:setcolor( 'darkcyan' , s:l*27/50 , s:l*38/50 , s:l )
511
+ call s:setcolor( 'darkred' , s:l , s:l*27/50 , s:l*27/50 )
512
+ call s:setcolor( 'darkyellow', s:l , s:l , s:l*27/50 )
513
+ call s:setcolor( 'darkgrey' , s:l*40/50 , s:l*40/50 , s:l*40/50 )
514
+ call s:setcolor( 'grey' , s:l*35/50 , s:l*35/50 , s:l*35/50 )
515
+ call s:setcolor( 'lightgrey' , s:l*30/50 , s:l*30/50 , s:l*30/50 )
516
+
517
+ call s:setcolor( 'white' , s:l*45/50 , s:l*45/50 , s:l*45/50 )
518
+
519
+ " Foreground colors for colormap with a light background
520
+ call s:setcolor( 'bluegreen' , 0 , s:h , 0 )
521
+ call s:setcolor( 'cyan' , 0 , s:h*38/50 , s:h )
522
+ call s:setcolor( 'green' , 0 , s:m , 0 )
523
+ call s:setcolor( 'purple' , s:h*38/50 , 0 , s:h )
524
+ call s:setcolor( 'skyblue' , 0 , 0 , s:h )
525
+ endif
526
+
527
+ " {{{2 Highlighting groups for "soft" / "softlight" colors.
528
+ if s:colormap == 'soft'
529
+ " Highlighting groups for dark background
530
+ call s:hi( 'Normal' , 'none', 'white' , 'black' )
531
+
532
+ call s:hi( 'Cursor' , 'none', 'black' , 'green' )
533
+ call s:hi( 'DiffText' , 'none', 'darkred' , 'darkyellow')
534
+ call s:hi( 'Error' , 'none', 'white' , 'darkred' )
535
+ call s:hi( 'ErrorMsg' , 'none', 'white' , 'darkred' )
536
+ call s:hi( 'FoldColumn' , 'none', 'purple' , 'darkgrey' )
537
+ call s:hi( 'Folded' , 'none', 'purple' , 'darkgrey' )
538
+ call s:hi( 'IncSearch' , 'none', 'yellow' , 'darkblue' )
539
+ call s:hi( 'StatusLine' , 'none', 'darkblue' , 'lightgrey' )
540
+ call s:hi( 'VisualNOS' , 'none', 'black' , 'darkgrey' )
541
+ else
542
+ " Highlighting groups for light background
543
+ call s:hi( 'Normal' , 'none', 'black' , 'white' )
544
+
545
+ call s:hi( 'Cursor' , 'none', 'white' , 'bluegreen' )
546
+ call s:hi( 'DiffText' , 'none', 'red' , 'darkyellow')
547
+ call s:hi( 'Error' , 'none', 'black' , 'darkred' )
548
+ call s:hi( 'ErrorMsg' , 'none', 'white' , 'red' )
549
+ call s:hi( 'FoldColumn' , 'none', 'lightgrey', 'darkgrey' )
550
+ call s:hi( 'Folded' , 'none', 'black' , 'darkgrey' )
551
+ call s:hi( 'IncSearch' , 'none', 'black' , 'darkblue' )
552
+ call s:hi( 'StatusLine' , 'none', 'skyblue' , 'lightgrey' )
553
+ call s:hi( 'VisualNOS' , 'none', 'white' , 'darkgrey' )
554
+ endif
555
+
556
+ " Highlighting groups for light / dark background.
557
+ call s:hi( 'CursorColumn', 'none', 'none' , 'grey' )
558
+ call s:hi( 'CursorLine' , 'none', 'none' , 'grey' )
559
+ call s:hi( 'DiffAdd' , 'none', 'lightbrown', 'darkblue' )
560
+ call s:hi( 'DiffChange' , 'none', 'black' , 'darkyellow')
561
+ call s:hi( 'DiffDelete' , 'none', 'purple' , 'darkblue' )
562
+ call s:hi( 'Directory' , 'none', 'cyan' , 'none' )
563
+ call s:hi( 'LineNr' , 'none', 'yellow' , 'none' )
564
+ call s:hi( 'MatchParen' , 'bold', 'none' , 'none' )
565
+ call s:hi( 'MoreMsg' , 'none', 'green' , 'none' )
566
+ call s:hi( 'NonText' , 'none', 'yellow' , 'none' )
567
+ call s:hi( 'Pmenu' , 'none', 'none' , 'grey' )
568
+ call s:hi( 'PmenuSbar' , 'none', 'none' , 'darkgrey' )
569
+ call s:hi( 'PmenuSel' , 'none', 'none' , 'darkblue' )
570
+ call s:hi( 'PmenuThumb' , 'none', 'none' , 'lightgrey' )
571
+ call s:hi( 'Question' , 'none', 'green' , 'none' )
572
+ call s:hi( 'Search' , 'none', 'black' , 'darkcyan' )
573
+ call s:hi( 'SignColumn' , 'none', 'yellow' , 'darkgrey' )
574
+ call s:hi( 'SpecialKey' , 'none', 'yellow' , 'none' )
575
+ call s:hi( 'StatusLineNC', 'none', 'black' , 'grey' )
576
+ call s:hi( 'TabLineFill' , 'none', 'none' , 'grey' )
577
+ call s:hi( 'TabLine' , 'none', 'none' , 'grey' )
578
+ call s:hi( 'TabLineSel' , 'bold', 'none' , 'none' )
579
+ call s:hi( 'Title' , 'none', 'yellow' , 'none' )
580
+ call s:hi( 'VertSplit' , 'none', 'darkgrey' , 'darkgrey' )
581
+ call s:hi( 'Visual' , 'none', 'none' , 'darkblue' )
582
+ call s:hi( 'WarningMsg' , 'none', 'red' , 'none' )
583
+ call s:hi( 'WildMenu' , 'none', 'yellow' , 'none' )
584
+
585
+ call s:hi( 'Comment' , 'none', 'red' , 'none' )
586
+ call s:hi( 'Constant' , 'none', 'lightbrown', 'none' )
587
+ call s:hi( 'Identifier' , 'none', 'cyan' , 'none' )
588
+ call s:hi( 'Ignore' , 'none', 'darkgrey' , 'none' )
589
+ call s:hi( 'PreProc' , 'none', 'purple' , 'none' )
590
+ call s:hi( 'Special' , 'none', 'green' , 'none' )
591
+ call s:hi( 'Statement' , 'none', 'skyblue' , 'none' )
592
+ call s:hi( 'Todo' , 'none', 'black' , 'darkyellow')
593
+ call s:hi( 'Type' , 'none', 'bluegreen' , 'none' )
594
+ call s:hi( 'Underlined' , 'none', 'magenta' , 'none' )
595
+
596
+ " {{{2 Spelling highlighting groups.
597
+ call s:hi( 'SpellBad' , 'bold,underline', 'none', 'darkgrey',
598
+ \ 'undercurl' , 'none', 'none' ,
599
+ \ 'red' )
600
+ call s:hi( 'SpellCap' , 'bold' , 'none', 'darkgrey',
601
+ \ 'undercurl' , 'none', 'none' ,
602
+ \ 'skyblue' )
603
+ call s:hi( 'SpellLocal', 'underline' , 'none', 'darkgrey',
604
+ \ 'undercurl' , 'none', 'none' ,
605
+ \ 'cyan' )
606
+ call s:hi( 'SpellRare' ,'underline' , 'none', 'none' ,
607
+ \ 'undercurl' , 'none', 'none' ,
608
+ \ 'yellow' )
609
+
610
+ " {{{2 Define html highlighting groups for soft colors.
611
+ if !exists("g:xterm16_NoHtmlColors")
612
+ call s:hi( 'htmlBold', 'none', 'yellow', 'none',
613
+ \ 'bold', 'none')
614
+ call s:hi( 'htmlItalic', 'none', 'yellow', 'none',
615
+ \ 'italic', 'none')
616
+ call s:hi( 'htmlUnderline', 'none', 'magenta', 'none',
617
+ \ 'underline', 'none')
618
+ call s:hi( 'htmlBoldItalic', 'bold', 'yellow', 'none',
619
+ \ 'bold,italic', 'none')
620
+ call s:hi( 'htmlBoldUnderline', 'bold', 'magenta', 'none',
621
+ \ 'bold,underline', 'none')
622
+ call s:hi( 'htmlUnderlineItalic', 'bold', 'magenta', 'none',
623
+ \ 'underline,italic', 'none')
624
+ call s:hi( 'htmlBoldUnderlineItalic', 'bold', 'white', 'none',
625
+ \ 'bold,underline,italic', 'none')
626
+ endif
627
+ " }}}2
628
+ elseif s:colormap == 'allblue'
629
+ " {{{2 "allblue" colormap. All shades of blue.
630
+ " Background colors
631
+ call s:setcolor( 'black' , 0 , 0 , 0 )
632
+ call s:setcolor( 'darkred' , s:l , 0 , 0 )
633
+ call s:setcolor( 'darkcyan' , 0 , s:l , s:l )
634
+ call s:setcolor( 'darkblue' , 0 , 0 , s:l )
635
+ call s:setcolor( 'darkyellow' , s:l , s:l , 0 )
636
+
637
+ " cterm's can do grey's with better accuracy, so use many shades of
638
+ " grey for backgrounds instead of the gaudy yellow's etc.
639
+ call s:setcolor( 'grey1' , s:l/8 , s:l/8 , s:l/8 )
640
+ call s:setcolor( 'grey2' , 2*s:l/8 , 2*s:l/8 , 2*s:l/8 )
641
+ call s:setcolor( 'grey3' , 3*s:l/8 , 3*s:l/8 , 3*s:l/8 )
642
+ call s:setcolor( 'grey4' , 4*s:l/8 , 4*s:l/8 , 4*s:l/8 )
643
+ call s:setcolor( 'grey5' , 5*s:l/8 , 5*s:l/8 , 5*s:l/8 )
644
+ " call s:setcolor( 'grey6' , 6*s:l/8 , 6*s:l/8 , 6*s:l/8 )
645
+ " call s:setcolor( 'grey7' , 7*s:l/8 , 7*s:l/8 , 7*s:l/8 )
646
+ call s:setcolor( 'grey' , s:l , s:l , s:l )
647
+
648
+ " Foreground colors:
649
+ "
650
+ " s:m -- lowest intensity level for fg colors
651
+ " s:h -- highest intensity level.
652
+ " s:M -- medium intensity (average of the above two)
653
+
654
+ let s:M = (s:m + s:h) / 2
655
+
656
+ call s:setcolor( 'red' , s:h , 0 , 0 )
657
+ call s:setcolor( 'lightbrown' , s:M , s:m , 0 )
658
+ call s:setcolor( 'yellow' , s:M , s:M , s:m )
659
+ call s:setcolor( 'dirtygreen' , s:m , s:m , 0 )
660
+ call s:setcolor( 'green' , s:m , s:M , s:m )
661
+ call s:setcolor( 'bluegreen' , 0 , s:M , s:m )
662
+ call s:setcolor( 'yellowgreen', s:m , s:M , 0 )
663
+ call s:setcolor( 'skyblue' , 0 , s:m , s:M )
664
+ call s:setcolor( 'lightblue' , 0 , s:m , s:h )
665
+ call s:setcolor( 'cyan' , 0 , s:M , s:M )
666
+ call s:setcolor( 'lightcyan' , s:m , s:M , s:M )
667
+ call s:setcolor( 'darkpurple' , s:m , 0 , s:h )
668
+ call s:setcolor( 'purple' , s:m , s:m , s:M )
669
+
670
+ " Unused colors that are pretty reasonable
671
+ " call s:setcolor( 'lightred' , s:M , s:m , s:m )
672
+ " call s:setcolor( 'bluewhite' , s:M , s:M , s:h )
673
+ " call s:setcolor( 'lightpurple', s:m , s:m , s:h )
674
+
675
+ " Greys can be done with better accurcy on cterms!
676
+ call s:setcolor( 'white' , 48*s:M/50 , 48*s:M/50 , 48*s:M/50 )
677
+ call s:setcolor( 'white1' , 40*s:M/50 , 40*s:M/50 , 40*s:M/ 50 )
678
+
679
+ unlet s:M
680
+
681
+ " {{{2 Highlighting groups for "allblue" colors.
682
+ call s:hi( 'Normal' , 'none' , 'white' , 'black' )
683
+
684
+ call s:hi( 'Cursor' , 'none' , 'black' , 'green' )
685
+ call s:hi( 'CursorColumn' , 'none' , 'none' , 'grey4' )
686
+ call s:hi( 'CursorLine' , 'none' , 'none' , 'grey4' )
687
+ call s:hi( 'DiffAdd' , 'none' , 'lightbrown' , 'grey2' )
688
+ call s:hi( 'DiffChange' , 'none' , 'yellow' , 'grey2' )
689
+ call s:hi( 'DiffDelete' , 'none' , 'dirtygreen' , 'grey2' )
690
+ call s:hi( 'DiffText' , 'none' , 'yellowgreen' , 'grey2' )
691
+ call s:hi( 'Directory' , 'none' , 'lightblue' , 'none' )
692
+ call s:hi( 'ErrorMsg' , 'none' , 'white' , 'darkred' )
693
+ call s:hi( 'FoldColumn' , 'none' , 'grey4' , 'none' )
694
+ call s:hi( 'Folded' , 'none' , 'white1' , 'grey2' )
695
+ call s:hi( 'IncSearch' , 'none' , 'white' , 'darkblue' )
696
+ call s:hi( 'LineNr' , 'none' , 'yellow' , 'none' )
697
+ call s:hi( 'MatchParen' , 'bold' , 'none' , 'none' )
698
+ call s:hi( 'ModeMsg' , 'bold' , 'none' , 'none' )
699
+ call s:hi( 'MoreMsg' , 'none' , 'green' , 'none' )
700
+ call s:hi( 'NonText' , 'none' , 'lightbrown' , 'none' )
701
+ call s:hi( 'Pmenu' , 'none' , 'none' , 'grey3' )
702
+ call s:hi( 'PmenuSel' , 'none' , 'none' , 'darkblue' )
703
+ call s:hi( 'PmenuSbar' , 'none' , 'none' , 'grey2' )
704
+ call s:hi( 'PmenuThumb' , 'none' , 'none' , 'grey4' )
705
+ call s:hi( 'Question' , 'none' , 'green' , 'none' )
706
+ call s:hi( 'Search' , 'none' , 'black' , 'darkcyan' )
707
+ call s:hi( 'SignColumn' , 'none' , 'yellow' , 'grey1' )
708
+ call s:hi( 'SpecialKey' , 'none' , 'yellow' , 'none' )
709
+ call s:hi( 'StatusLineNC' , 'none' , 'grey' , 'grey3' )
710
+ call s:hi( 'StatusLine' , 'none' , 'white' , 'grey5' )
711
+ call s:hi( 'TabLine' , 'none' , 'none' , 'grey3' )
712
+ call s:hi( 'TabLineFill' , 'none' , 'none' , 'grey3' )
713
+ call s:hi( 'TabLineSel' , 'bold' , 'none' , 'none' )
714
+ call s:hi( 'Title' , 'none' , 'yellow' , 'none' )
715
+ call s:hi( 'VertSplit' , 'none' , 'grey3' , 'grey3' )
716
+ call s:hi( 'Visual' , 'none' , 'none' , 'darkblue' )
717
+ call s:hi( 'VisualNOS' , 'none' , 'none' , 'grey2' )
718
+ call s:hi( 'WarningMsg' , 'none' , 'red' , 'none' )
719
+ call s:hi( 'WildMenu' , 'none' , 'yellow' , 'none' )
720
+
721
+ call s:hi( 'Comment' , 'none' , 'purple' , 'none' )
722
+ call s:hi( 'Constant' , 'none' , 'lightcyan' , 'none' )
723
+ call s:hi( 'Error' , 'none' , 'red' , 'none' )
724
+ call s:hi( 'Identifier' , 'none' , 'cyan' , 'none' )
725
+ call s:hi( 'Ignore' , 'none' , 'grey3' , 'none' )
726
+ call s:hi( 'PreProc' , 'none' , 'darkpurple' , 'none' )
727
+ call s:hi( 'Special' , 'none' , 'bluegreen' , 'none' )
728
+ call s:hi( 'Statement' , 'none' , 'skyblue' , 'none' )
729
+ call s:hi( 'Todo' , 'none' , 'lightbrown' , 'none' )
730
+ call s:hi( 'Type' , 'none' , 'green' , 'none' )
731
+ call s:hi( 'Underlined' , 'none' , 'darkpurple' , 'none' )
732
+
733
+ " {{{2 Spelling highlighting groups.
734
+ "
735
+ " The undercurl looks great in gui, so let's use that. For cterm use
736
+ " some crappy grey background + bold / etc. Not something that stands
737
+ " out too much because there are invariably numerous spelling mistakes
738
+ " highlighted in most code.
739
+ "
740
+ call s:hi( 'SpellBad' , 'bold,underline' , 'none', 'grey2',
741
+ \ 'undercurl' , 'none', 'none' , 'red' )
742
+ call s:hi( 'SpellCap' , 'bold' , 'none', 'grey2',
743
+ \ 'undercurl' , 'none', 'none' , 'skyblue' )
744
+ call s:hi( 'SpellLocal' , 'underline' , 'none', 'grey2',
745
+ \ 'undercurl' , 'none', 'none' , 'lightcyan' )
746
+ call s:hi( 'SpellRare' , 'underline' , 'none', 'none' ,
747
+ \ 'undercurl' , 'none', 'none' , 'yellow' )
748
+
749
+ " {{{2 Highlighting groups for email.
750
+ "
751
+ " mailURL links to Constant, which is light cyan. This does not stand
752
+ " out well in quoted emails (which is cyan), or regular text. Better
753
+ " to use light brown (like the soft colormap).
754
+ hi link mailURL Todo
755
+
756
+ " {{{2 Define html highlighting groups for "allblue" colors
757
+ if !exists("g:xterm16_NoHtmlColors")
758
+ call s:hi( 'htmlBold', 'none', 'yellow', 'none', 'bold', 'none')
759
+ call s:hi( 'htmlItalic', 'none', 'yellow', 'none', 'italic', 'none')
760
+ call s:hi( 'htmlUnderline', 'none', 'darkpurple', 'none', 'underline', 'none')
761
+ call s:hi( 'htmlBoldItalic', 'bold', 'yellow', 'none', 'bold,italic', 'none')
762
+ call s:hi( 'htmlBoldUnderline', 'bold', 'darkpurple', 'none', 'bold,underline', 'none')
763
+ call s:hi( 'htmlUnderlineItalic', 'bold', 'darkpurple', 'none', 'underline,italic', 'none')
764
+ call s:hi( 'htmlBoldUnderlineItalic', 'bold', 'white', 'none', 'bold,underline,italic', 'none')
765
+ endif
766
+ " }}}2
767
+ else
768
+ throw 'xterm16 Error: Unrecognised colormap "' . s:colormap . '"'
769
+ endif
770
+ " }}}1
771
+ catch /^xterm16 Error:/
772
+ " {{{1 Handle internal exceptions.
773
+ unlet colors_name
774
+
775
+ echohl ErrorMsg
776
+ echomsg v:exception
777
+ echohl None
778
+ " }}}1
779
+ finally
780
+ " {{{1 Unlet script variables and functions
781
+ " Restore compatibility options
782
+ let &cpo = s:cpo_save
783
+ unlet! s:c1 s:c2 s:c3
784
+ unlet! s:i s:lower s:upper s:ccube s:cinterval
785
+ unlet! s:cpo_save s:hex s:l s:m s:h s:cterm_none s:gui_none
786
+
787
+ " Delete colors of "standard" colormap
788
+ unlet! s:gui_black s:gui_darkred s:gui_darkgreen s:gui_darkyellow s:gui_darkblue s:gui_darkmagenta s:gui_darkcyan s:gui_grey s:gui_darkgrey s:gui_red s:gui_green s:gui_yellow s:gui_blue s:gui_magenta s:gui_cyan s:gui_white
789
+ unlet! s:cterm_black s:cterm_darkred s:cterm_darkgreen s:cterm_darkyellow s:cterm_darkblue s:cterm_darkmagenta s:cterm_darkcyan s:cterm_grey s:cterm_darkgrey s:cterm_red s:cterm_green s:cterm_yellow s:cterm_blue s:cterm_magenta s:cterm_cyan s:cterm_white
790
+
791
+ " Delete extra colors of "soft" colormap
792
+ unlet! s:gui_lightbrown s:gui_bluegreen s:gui_skyblue s:gui_purple
793
+ unlet! s:cterm_lightbrown s:cterm_bluegreen s:cterm_skyblue s:cterm_purple
794
+
795
+ " Delete extra colors from "allblue" colormap
796
+ unlet! s:gui_darkcyan s:gui_darkblue s:gui_grey1 s:gui_grey2 s:gui_grey3 s:gui_grey4 s:gui_grey5 s:gui_white1 s:gui_dirtygreen s:gui_yellowgreen s:gui_lightblue s:gui_lightcyan s:gui_darkpurple
797
+ unlet! s:cterm_darkcyan s:cterm_darkblue s:cterm_grey1 s:cterm_grey2 s:cterm_grey3 s:cterm_grey4 s:cterm_grey5 s:cterm_white1 s:cterm_dirtygreen s:cterm_yellowgreen s:cterm_lightblue s:cterm_lightcyan s:cterm_darkpurple
798
+
799
+ delfunction s:tohex
800
+ delfunction s:extractRGB
801
+ delfunction s:guilevel
802
+ delfunction s:ctermlevel
803
+ delfunction s:guicolor
804
+ delfunction s:ctermcolor
805
+ delfunction s:setcolor
806
+ delfunction s:getcolor
807
+ delfunction s:use_guiattr
808
+ delfunction s:hi
809
+ delfunction s:set_brightness
810
+ " }}}1
811
+ endtry