jellyx.vim 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. " __ _ _ __ __
  2. " __| |___| | |_ _| | | A delicious collision of
  3. " | | | -_| | | | |- -|
  4. " |_____|___|_|_|_ |__|__| Jellybeans and Xoria256.
  5. " |___|
  6. " Version: 0.1
  7. " Author: Sung Pae <sung@metablu.com>
  8. " Homepage: http://github.com/guns/jellyx.vim
  9. " License: MIT (knock yourself out)
  10. " INSPIRED BY: {{{
  11. "
  12. " Main color palette from Xoria256.vim:
  13. "
  14. " Author: Dmitriy Y. Zotikov (xio) <xio@ungrund.org>
  15. " Homepage: http://www.vim.org/scripts/script.php?script_id=2140
  16. "
  17. " Misc colors and function-based approach from Jellybeans.vim:
  18. "
  19. " Author: NanoTech <http://nanotech.nanotechcorp.net/>
  20. " Homepage: http://github.com/nanotech/jellybeans.vim
  21. " License: MIT
  22. " Copyright (c) 2009-2010 NanoTech
  23. "
  24. "}}}
  25. """ Initialize {{{
  26. set background=dark
  27. highlight clear
  28. if exists('syntax_on')
  29. syntax reset
  30. endif
  31. let colors_name = 'jellyx'
  32. if &t_Co != 256 && ! has('gui_running')
  33. echoerr 'Not enough colors to display JellyX!'
  34. echoerr 'Go buy yourself a new terminal.'
  35. finish
  36. endif
  37. "}}}
  38. """ Functions {{{
  39. " http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html {{{
  40. let s:xterm_colors = {
  41. \ '0': '#000000', '1': '#800000', '2': '#008000', '3': '#808000', '4': '#000080',
  42. \ '5': '#800080', '6': '#008080', '7': '#c0c0c0', '8': '#808080', '9': '#ff0000',
  43. \ '10': '#00ff00', '11': '#ffff00', '12': '#0000ff', '13': '#ff00ff', '14': '#00ffff',
  44. \ '15': '#ffffff', '16': '#000000', '17': '#00005f', '18': '#000087', '19': '#0000af',
  45. \ '20': '#0000df', '21': '#0000ff', '22': '#005f00', '23': '#005f5f', '24': '#005f87',
  46. \ '25': '#005faf', '26': '#005fdf', '27': '#005fff', '28': '#008700', '29': '#00875f',
  47. \ '30': '#008787', '31': '#0087af', '32': '#0087df', '33': '#0087ff', '34': '#00af00',
  48. \ '35': '#00af5f', '36': '#00af87', '37': '#00afaf', '38': '#00afdf', '39': '#00afff',
  49. \ '40': '#00df00', '41': '#00df5f', '42': '#00df87', '43': '#00dfaf', '44': '#00dfdf',
  50. \ '45': '#00dfff', '46': '#00ff00', '47': '#00ff5f', '48': '#00ff87', '49': '#00ffaf',
  51. \ '50': '#00ffdf', '51': '#00ffff', '52': '#5f0000', '53': '#5f005f', '54': '#5f0087',
  52. \ '55': '#5f00af', '56': '#5f00df', '57': '#5f00ff', '58': '#5f5f00', '59': '#5f5f5f',
  53. \ '60': '#5f5f87', '61': '#5f5faf', '62': '#5f5fdf', '63': '#5f5fff', '64': '#5f8700',
  54. \ '65': '#5f875f', '66': '#5f8787', '67': '#5f87af', '68': '#5f87df', '69': '#5f87ff',
  55. \ '70': '#5faf00', '71': '#5faf5f', '72': '#5faf87', '73': '#5fafaf', '74': '#5fafdf',
  56. \ '75': '#5fafff', '76': '#5fdf00', '77': '#5fdf5f', '78': '#5fdf87', '79': '#5fdfaf',
  57. \ '80': '#5fdfdf', '81': '#5fdfff', '82': '#5fff00', '83': '#5fff5f', '84': '#5fff87',
  58. \ '85': '#5fffaf', '86': '#5fffdf', '87': '#5fffff', '88': '#870000', '89': '#87005f',
  59. \ '90': '#870087', '91': '#8700af', '92': '#8700df', '93': '#8700ff', '94': '#875f00',
  60. \ '95': '#875f5f', '96': '#875f87', '97': '#875faf', '98': '#875fdf', '99': '#875fff',
  61. \ '100': '#878700', '101': '#87875f', '102': '#878787', '103': '#8787af', '104': '#8787df',
  62. \ '105': '#8787ff', '106': '#87af00', '107': '#87af5f', '108': '#87af87', '109': '#87afaf',
  63. \ '110': '#87afdf', '111': '#87afff', '112': '#87df00', '113': '#87df5f', '114': '#87df87',
  64. \ '115': '#87dfaf', '116': '#87dfdf', '117': '#87dfff', '118': '#87ff00', '119': '#87ff5f',
  65. \ '120': '#87ff87', '121': '#87ffaf', '122': '#87ffdf', '123': '#87ffff', '124': '#af0000',
  66. \ '125': '#af005f', '126': '#af0087', '127': '#af00af', '128': '#af00df', '129': '#af00ff',
  67. \ '130': '#af5f00', '131': '#af5f5f', '132': '#af5f87', '133': '#af5faf', '134': '#af5fdf',
  68. \ '135': '#af5fff', '136': '#af8700', '137': '#af875f', '138': '#af8787', '139': '#af87af',
  69. \ '140': '#af87df', '141': '#af87ff', '142': '#afaf00', '143': '#afaf5f', '144': '#afaf87',
  70. \ '145': '#afafaf', '146': '#afafdf', '147': '#afafff', '148': '#afdf00', '149': '#afdf5f',
  71. \ '150': '#afdf87', '151': '#afdfaf', '152': '#afdfdf', '153': '#afdfff', '154': '#afff00',
  72. \ '155': '#afff5f', '156': '#afff87', '157': '#afffaf', '158': '#afffdf', '159': '#afffff',
  73. \ '160': '#df0000', '161': '#df005f', '162': '#df0087', '163': '#df00af', '164': '#df00df',
  74. \ '165': '#df00ff', '166': '#df5f00', '167': '#df5f5f', '168': '#df5f87', '169': '#df5faf',
  75. \ '170': '#df5fdf', '171': '#df5fff', '172': '#df8700', '173': '#df875f', '174': '#df8787',
  76. \ '175': '#df87af', '176': '#df87df', '177': '#df87ff', '178': '#dfaf00', '179': '#dfaf5f',
  77. \ '180': '#dfaf87', '181': '#dfafaf', '182': '#dfafdf', '183': '#dfafff', '184': '#dfdf00',
  78. \ '185': '#dfdf5f', '186': '#dfdf87', '187': '#dfdfaf', '188': '#dfdfdf', '189': '#dfdfff',
  79. \ '190': '#dfff00', '191': '#dfff5f', '192': '#dfff87', '193': '#dfffaf', '194': '#dfffdf',
  80. \ '195': '#dfffff', '196': '#ff0000', '197': '#ff005f', '198': '#ff0087', '199': '#ff00af',
  81. \ '200': '#ff00df', '201': '#ff00ff', '202': '#ff5f00', '203': '#ff5f5f', '204': '#ff5f87',
  82. \ '205': '#ff5faf', '206': '#ff5fdf', '207': '#ff5fff', '208': '#ff8700', '209': '#ff875f',
  83. \ '210': '#ff8787', '211': '#ff87af', '212': '#ff87df', '213': '#ff87ff', '214': '#ffaf00',
  84. \ '215': '#ffaf5f', '216': '#ffaf87', '217': '#ffafaf', '218': '#ffafdf', '219': '#ffafff',
  85. \ '220': '#ffdf00', '221': '#ffdf5f', '222': '#ffdf87', '223': '#ffdfaf', '224': '#ffdfdf',
  86. \ '225': '#ffdfff', '226': '#ffff00', '227': '#ffff5f', '228': '#ffff87', '229': '#ffffaf',
  87. \ '230': '#ffffdf', '231': '#ffffff', '232': '#080808', '233': '#121212', '234': '#1c1c1c',
  88. \ '235': '#262626', '236': '#303030', '237': '#3a3a3a', '238': '#444444', '239': '#4e4e4e',
  89. \ '240': '#585858', '241': '#606060', '242': '#666666', '243': '#767676', '244': '#808080',
  90. \ '245': '#8a8a8a', '246': '#949494', '247': '#9e9e9e', '248': '#a8a8a8', '249': '#b2b2b2',
  91. \ '250': '#bcbcbc', '251': '#c6c6c6', '252': '#d0d0d0', '253': '#dadada', '254': '#e4e4e4',
  92. \ '255': '#eeeeee', 'fg': 'fg', 'bg': 'bg', 'none': 'none' } "}}}
  93. " We are primarily targeting 256-color terminals; "{{{
  94. " exact GUI RGB values are therefore easy to obtain
  95. command! -nargs=+ HI call s:HI(<f-args>)
  96. function! s:HI(group, fg, bg, fx, ...)
  97. if a:fg != '-'
  98. execute 'highlight '.a:group.' ctermfg='.a:fg.' guifg='.s:xterm_colors[a:fg]
  99. endif
  100. if a:bg != '-'
  101. execute 'highlight '.a:group.' ctermbg='.a:bg.' guibg='.s:xterm_colors[a:bg]
  102. endif
  103. if a:fx != '-'
  104. " rxvt-unicode can display italic fonts, among other things
  105. if a:fx =~ 'italic' && &term !~ '^rxvt-unicode'
  106. execute 'highlight '.a:group.' term='.a:fx.' gui='.a:fx.' cterm='.substitute(a:fx,',\?italic,\?','','g')
  107. else
  108. execute 'highlight '.a:group.' term='.a:fx.' gui='.a:fx.' cterm='.a:fx
  109. endif
  110. endif
  111. " Any additional arguments are simply passed along
  112. if a:0
  113. execute 'highlight '.a:group.' '.join(a:000,' ')
  114. endif
  115. endfunction "}}}
  116. "}}}
  117. """ Common UI {{{
  118. HI Normal 252 0 none
  119. HI Cursor - 214 -
  120. HI CursorColumn - 238 -
  121. HI CursorLine - 233 none
  122. HI Visual fg 96 -
  123. HI VisualNOS fg 60 -
  124. HI IncSearch - - inverse
  125. HI Search 158 bg underline
  126. HI LineNr 240 - -
  127. HI FoldColumn 240 bg -
  128. HI SignColumn 240 - -
  129. HI NonText 240 - -
  130. HI Folded 232 60 bold,italic
  131. HI StatusLine - 234 bold
  132. HI StatusLineNC - 234 none
  133. HI TabLine 249 236 none
  134. HI TabLineSel - bg bold,italic
  135. HI TabLineFill bg 0 none
  136. HI VertSplit 234 234 none
  137. HI Pmenu fg 234 -
  138. HI PmenuSel 0 140 -
  139. HI PmenuSbar - 234 -
  140. HI PmenuThumb - 140 -
  141. HI WildMenu 0 150 bold
  142. HI Title 225 - -
  143. HI SpellBad 160 bg underline guisp=#df0000
  144. HI SpellCap 189 bg underline
  145. HI SpellRare 168 bg underline
  146. HI SpecialKey 77 - -
  147. HI ErrorMsg - 88 -
  148. HI MatchParen fg 17 bold
  149. "}}}
  150. """ Common Syntax {{{
  151. HI Comment 244 - -
  152. HI Constant 229 - -
  153. HI Error - 88 -
  154. HI Identifier 182 - none
  155. HI Ignore 238 - -
  156. HI Number 180 - -
  157. HI PreProc 150 - -
  158. HI Special 174 - -
  159. HI Statement 110 - none
  160. HI Todo 184 bg bold
  161. HI Type 146 - none
  162. HI Underlined 39 - underline
  163. "}}}
  164. """ Diff / Vimdiff {{{
  165. HI diffAdded 150 - -
  166. HI diffRemoved 174 - -
  167. HI diffAdd bg 151 -
  168. HI diffDelete bg 186 none
  169. HI diffDelete bg 246 none
  170. HI diffChange bg 181 -
  171. HI diffText bg 174 none
  172. "}}}
  173. """ Custom groups {{{
  174. if exists('g:jellyx_show_whitespace')
  175. autocmd Syntax *
  176. \ syntax match Tab /\v\t/ containedin=ALL |
  177. \ syntax match TrailingWS /\v\s+$/ containedin=ALL
  178. HI Tab - 234 -
  179. HI TrailingWS - 89 -
  180. endif
  181. "}}}
  182. """ Cleanup {{{
  183. delcommand HI
  184. delfunction s:HI
  185. "}}}
  186. " vim: set expandtab ts=4 sts=4 sw=4 :