mirror of
https://github.com/whatyouhide/vim-gotham.git
synced 2026-09-10 07:26:17 -04:00
Terminal colors, yay (at least with iTerm)
This commit is contained in:
parent
58c2a105e5
commit
7b105befdb
|
|
@ -1,69 +1,79 @@
|
|||
" Bootstrap ===================================================================
|
||||
|
||||
" Let's store all the colors in a dictionary.
|
||||
let s:colors = {}
|
||||
let s:c = {}
|
||||
|
||||
" Base colors.
|
||||
let s:colors.base0 = { 'gui': '#0c1014' }
|
||||
let s:colors.base1 = { 'gui': '#11151c' }
|
||||
let s:colors.base2 = { 'gui': '#091f2e' }
|
||||
let s:colors.base3 = { 'gui': '#0a3749' }
|
||||
let s:colors.base4 = { 'gui': '#245361' }
|
||||
let s:colors.base5 = { 'gui': '#599cab' }
|
||||
let s:colors.base6 = { 'gui': '#99d1ce' }
|
||||
let s:colors.base7 = { 'gui': '#d3ebe9' }
|
||||
let s:c.base0 = { 'gui': '#0c1014', 'cterm': 0 }
|
||||
let s:c.base1 = { 'gui': '#11151c', 'cterm': 8 }
|
||||
let s:c.base2 = { 'gui': '#091f2e', 'cterm': 10 }
|
||||
let s:c.base3 = { 'gui': '#0a3749', 'cterm': 12 }
|
||||
let s:c.base4 = { 'gui': '#245361', 'cterm': 11 }
|
||||
let s:c.base5 = { 'gui': '#599cab', 'cterm': 14 }
|
||||
let s:c.base6 = { 'gui': '#99d1ce', 'cterm': 7 }
|
||||
let s:c.base7 = { 'gui': '#d3ebe9', 'cterm': 15 }
|
||||
|
||||
" Other colors.
|
||||
let s:colors.red = { 'gui': '#c23127' }
|
||||
let s:colors.orange = { 'gui': '#d26937' }
|
||||
let s:colors.yellow = { 'gui': '#edb443' }
|
||||
let s:colors.magenta = { 'gui': '#888ca6' }
|
||||
let s:colors.violet = { 'gui': '#4e5166' }
|
||||
let s:colors.blue = { 'gui': '#195466' }
|
||||
let s:colors.cyan = { 'gui': '#33859E' }
|
||||
let s:colors.green = { 'gui': '#2aa889' }
|
||||
let s:c.red = { 'gui': '#c23127', 'cterm': 1 }
|
||||
let s:c.orange = { 'gui': '#d26937', 'cterm': 9 }
|
||||
let s:c.yellow = { 'gui': '#edb443', 'cterm': 3 }
|
||||
let s:c.magenta = { 'gui': '#888ca6', 'cterm': 13 }
|
||||
let s:c.violet = { 'gui': '#4e5166', 'cterm': 5 }
|
||||
let s:c.blue = { 'gui': '#195466', 'cterm': 4 }
|
||||
let s:c.cyan = { 'gui': '#33859E', 'cterm': 6 }
|
||||
let s:c.green = { 'gui': '#2aa889', 'cterm': 2 }
|
||||
|
||||
let g:airline#themes#gotham#palette = {}
|
||||
|
||||
" Just remember:
|
||||
" [guifg, guibg, ctermfg, ctermbg, opts]
|
||||
"
|
||||
function! s:Array(fg, bg, ...)
|
||||
let result = [s:c[a:fg].gui, s:c[a:bg].gui, s:c[a:fg].cterm, s:c[a:bg].cterm]
|
||||
|
||||
for opt in a:000
|
||||
call add(result, opt)
|
||||
endfor
|
||||
|
||||
return result
|
||||
endfunction
|
||||
|
||||
|
||||
|
||||
" Normal mode =================================================================
|
||||
|
||||
" Colors.
|
||||
let s:N1 = [s:colors.base7.gui, s:colors.base4.gui, 17, 190]
|
||||
let s:N2 = [s:colors.base5.gui, s:colors.base2.gui, 1, 1]
|
||||
let s:N3 = [s:colors.base4.gui, s:colors.base1.gui, 1, 1]
|
||||
let s:N1 = s:Array('base7', 'base4')
|
||||
let s:N2 = s:Array('base5', 'base2')
|
||||
let s:N3 = s:Array('base4', 'base1')
|
||||
|
||||
let g:airline#themes#gotham#palette.normal =
|
||||
\ airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||
|
||||
" Overrides for when the buffer is modified in normal mode.
|
||||
let g:airline#themes#gotham#palette.normal_modified = {
|
||||
\ 'airline_c': [s:colors.base7.gui, s:colors.violet.gui, 1, 53, ''],
|
||||
\ 'airline_c': s:Array('base7', 'violet', '')
|
||||
\ }
|
||||
|
||||
|
||||
" Insert mode ==================================================================
|
||||
|
||||
" Colors.
|
||||
let s:I1 = [s:colors.base7.gui, s:colors.yellow.gui, 17, 45]
|
||||
let s:I2 = [s:colors.base6.gui, s:colors.base4.gui, 17, 45]
|
||||
let s:I3 = [s:colors.base4.gui, s:colors.base1.gui, 17, 45]
|
||||
let s:I1 = s:Array('base7', 'yellow')
|
||||
let s:I2 = s:Array('base6', 'base4')
|
||||
let s:I3 = s:Array('base4', 'base1')
|
||||
|
||||
let g:airline#themes#gotham#palette.insert =
|
||||
\ airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||
|
||||
" Overrides for when the buffer is modified in insert mode.
|
||||
let g:airline#themes#gotham#palette.insert_modified = {
|
||||
\ 'airline_c': [s:colors.base7.gui, s:colors.violet.gui, 1, 53, ''],
|
||||
\ 'airline_c': s:Array('base7', 'violet')
|
||||
\ }
|
||||
|
||||
" Overrides for when the paste is toggled in insert mode.
|
||||
let g:airline#themes#gotham#palette.insert_paste = {
|
||||
\ 'airline_a': [s:I1[0], s:colors.orange.gui, s:I1[2], 172, ''] ,
|
||||
\ 'airline_a': [s:I1[0], s:c.orange.gui, s:I1[2], s:c.orange.cterm, ''] ,
|
||||
\ }
|
||||
|
||||
|
||||
|
|
@ -71,20 +81,21 @@ let g:airline#themes#gotham#palette.insert_paste = {
|
|||
" Replace mode ================================================================
|
||||
|
||||
" Let's start with the same palette as insert mode...
|
||||
let g:airline#themes#gotham#palette.replace = copy(g:airline#themes#gotham#palette.insert)
|
||||
let g:airline#themes#gotham#palette.replace =
|
||||
\ copy(g:airline#themes#gotham#palette.insert)
|
||||
let g:airline#themes#gotham#palette.replace_modified =
|
||||
\ g:airline#themes#gotham#palette.insert_modified
|
||||
" ...and tweak it slightly.
|
||||
let g:airline#themes#gotham#palette.replace.airline_a =
|
||||
\ [s:I2[0], s:colors.red.gui, s:I2[2], 124, '']
|
||||
\ [s:I2[0], s:c.red.gui, s:I2[2], 124, '']
|
||||
|
||||
|
||||
|
||||
" Visual mode =================================================================
|
||||
|
||||
" Colors.
|
||||
let s:V1 = [s:colors.base7.gui, s:colors.green.gui, 232, 214]
|
||||
let s:V2 = [s:colors.base6.gui, s:colors.base3.gui, 232, 214]
|
||||
let s:V1 = s:Array('base7', 'green')
|
||||
let s:V2 = s:Array('base6', 'base3')
|
||||
let s:V3 = s:N3
|
||||
|
||||
let g:airline#themes#gotham#palette.visual =
|
||||
|
|
@ -98,15 +109,15 @@ let g:airline#themes#gotham#palette.visual_modified =
|
|||
|
||||
" Inactive mode (when the focus is not on the window) =========================
|
||||
|
||||
let s:IA1 = [s:colors.base4.gui, s:colors.base2.gui, 239, 234 , '']
|
||||
let s:IA2 = [s:colors.base4.gui, s:colors.base1.gui, 239, 234 , '']
|
||||
let s:IA3 = [s:colors.base4.gui, s:colors.base0.gui, 239, 234 , '']
|
||||
let s:IA1 = s:Array('base4', 'base2')
|
||||
let s:IA2 = s:Array('base4', 'base1')
|
||||
let s:IA3 = s:Array('base4', 'base0')
|
||||
|
||||
let g:airline#themes#gotham#palette.inactive =
|
||||
\ airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
|
||||
|
||||
let g:airline#themes#gotham#palette.inactive_modified = {
|
||||
\ 'airline_c': [s:colors.magenta.gui, '' , 97 , '', ''],
|
||||
\ 'airline_c': [s:c.magenta.gui, '' , s:c.magenta.cterm, '', ''],
|
||||
\ }
|
||||
|
||||
|
||||
|
|
@ -121,7 +132,7 @@ let g:airline#themes#gotham#palette.inactive_modified = {
|
|||
" will be red instead of the section's foreground color. You can also have
|
||||
" multiple parts with accents within a section.
|
||||
let g:airline#themes#gotham#palette.accents = {
|
||||
\ 'red': [s:colors.red.gui, '', 160, '']
|
||||
\ 'red': [s:c.red.gui, '', s:c.red.cterm, '']
|
||||
\ }
|
||||
|
||||
|
||||
|
|
@ -133,9 +144,9 @@ if !get(g:, 'loaded_ctrlp', 0)
|
|||
finish
|
||||
endif
|
||||
|
||||
let s:CP1 = [s:colors.base6.gui, s:colors.base2.gui, 0, 0, '' ]
|
||||
let s:CP2 = [s:colors.base6.gui, s:colors.base4.gui, 0, 0, '' ]
|
||||
let s:CP3 = [s:colors.base7.gui, s:colors.green.gui, 0, 0, 'bold']
|
||||
let s:CP1 = s:Array('base6', 'base2', '')
|
||||
let s:CP2 = s:Array('base6', 'base4', '')
|
||||
let s:CP3 = s:Array('base7', 'green', 'bold')
|
||||
|
||||
let g:airline#themes#gotham#palette.ctrlp =
|
||||
\ airline#extensions#ctrlp#generate_color_map(s:CP1, s:CP2, s:CP3)
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ function! s:Col(group, fg_name, ...)
|
|||
let pieces = s:AddGroundValues(pieces, 'bg', s:colors[a:1])
|
||||
endif
|
||||
|
||||
call s:Clear(a:group)
|
||||
call s:Highlight(pieces)
|
||||
endfunction
|
||||
|
||||
|
|
@ -67,24 +68,24 @@ endfunction
|
|||
let s:colors = {}
|
||||
|
||||
" Base colors.
|
||||
let s:colors.base0 = { 'gui': '#0c1014' }
|
||||
let s:colors.base1 = { 'gui': '#11151c' }
|
||||
let s:colors.base2 = { 'gui': '#091f2e' }
|
||||
let s:colors.base3 = { 'gui': '#0a3749' }
|
||||
let s:colors.base4 = { 'gui': '#245361' }
|
||||
let s:colors.base5 = { 'gui': '#599cab' }
|
||||
let s:colors.base6 = { 'gui': '#99d1ce' }
|
||||
let s:colors.base7 = { 'gui': '#d3ebe9' }
|
||||
let s:colors.base0 = { 'gui': '#0c1014', 'cterm': 0 }
|
||||
let s:colors.base1 = { 'gui': '#11151c', 'cterm': 8 }
|
||||
let s:colors.base2 = { 'gui': '#091f2e', 'cterm': 10 }
|
||||
let s:colors.base3 = { 'gui': '#0a3749', 'cterm': 12 }
|
||||
let s:colors.base4 = { 'gui': '#245361', 'cterm': 11 }
|
||||
let s:colors.base5 = { 'gui': '#599cab', 'cterm': 14 }
|
||||
let s:colors.base6 = { 'gui': '#99d1ce', 'cterm': 7 }
|
||||
let s:colors.base7 = { 'gui': '#d3ebe9', 'cterm': 15 }
|
||||
|
||||
" Other colors.
|
||||
let s:colors.red = { 'gui': '#c23127' }
|
||||
let s:colors.orange = { 'gui': '#d26937' }
|
||||
let s:colors.yellow = { 'gui': '#edb443' }
|
||||
let s:colors.magenta = { 'gui': '#888ca6' }
|
||||
let s:colors.violet = { 'gui': '#4e5166' }
|
||||
let s:colors.blue = { 'gui': '#195466' }
|
||||
let s:colors.cyan = { 'gui': '#33859E' }
|
||||
let s:colors.green = { 'gui': '#2aa889' }
|
||||
let s:colors.red = { 'gui': '#c23127', 'cterm': 1 }
|
||||
let s:colors.orange = { 'gui': '#d26937', 'cterm': 9 }
|
||||
let s:colors.yellow = { 'gui': '#edb443', 'cterm': 3 }
|
||||
let s:colors.magenta = { 'gui': '#888ca6', 'cterm': 13 }
|
||||
let s:colors.violet = { 'gui': '#4e5166', 'cterm': 5 }
|
||||
let s:colors.blue = { 'gui': '#195466', 'cterm': 4 }
|
||||
let s:colors.cyan = { 'gui': '#33859E', 'cterm': 6 }
|
||||
let s:colors.green = { 'gui': '#2aa889', 'cterm': 2 }
|
||||
|
||||
|
||||
" Native highlighting ==========================================================
|
||||
|
|
@ -138,7 +139,8 @@ call s:Col('NonText', 'base4')
|
|||
call s:Col('Todo', 'magenta', s:background)
|
||||
|
||||
" The column separating vertical splits.
|
||||
call s:Col('VertSplit', 'base2')
|
||||
call s:Col('VertSplit', 'base2', 'base2')
|
||||
call s:Col('StatusLineNC', 'base2', 'base2')
|
||||
|
||||
" Matching parenthesis.
|
||||
call s:Col('MatchParen', 'base1', 'orange')
|
||||
|
|
@ -163,8 +165,7 @@ call s:Col('ModeMsg', 'blue')
|
|||
|
||||
" Wild menu.
|
||||
" StatusLine determines the color of the non-active entries in the wild menu.
|
||||
call s:Clear('StatusLine')
|
||||
call s:Col('StatusLine', 'base4', 'base1')
|
||||
call s:Col('StatusLine', 'base4', 'base2')
|
||||
call s:Col('WildMenu', 'base7', 'cyan')
|
||||
|
||||
" The 'Hit ENTER to continue prompt'.
|
||||
|
|
|
|||
Loading…
Reference in a new issue