mdark.vim 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. " Vim color file
  2. " Maintaner: Mikhail Wolfson <mywolfson@gmail.com>
  3. " URL: http://web.mit.edu/wolfsonm
  4. " Last Change: 2010 Apr 13
  5. " Version: 0.1
  6. "
  7. " Features:
  8. " - let mdark_current_line = 1 if you want to highlight the current line
  9. "
  10. " Changelog:
  11. " 0.1 - made the original, based on rdark/mydark
  12. set background=dark
  13. hi clear
  14. if exists("syntax_on")
  15. syntax reset
  16. endif
  17. let colors_name = "mdark"
  18. " Options
  19. let mdark_current_line = 1
  20. let mdark_current_col = 0
  21. " Customizable Default Colors
  22. " this gives more control than using Vim's predefined colors
  23. " and makes it easy to introduce slight variations in the colors
  24. " prefixes: l_: light, m_: medium, o_: off- g_: grayish- b_: bright
  25. let s:fg = "#BABDB6"
  26. let s:bg = "#1E2426"
  27. let s:line_col = "#283033"
  28. let s:line_nr = "#49646A"
  29. " Shades of black and gray for structure
  30. let s:white = "#FFFFFF"
  31. let s:o_white = "#EEEEEC"
  32. let s:d_gray = "#2E3436"
  33. let s:m_gray = "#888A85"
  34. let s:slate = "#555753"
  35. let s:o_black = "#0A1012"
  36. let s:black = "#000000"
  37. " Specific colors for highlighted terms
  38. " pinks, purples
  39. let s:pink = "#D16B7C"
  40. let s:l_pink = "#D4A0A0"
  41. let s:purple = "#AD6491"
  42. let s:l_purple = "#CB9DCD"
  43. let s:l_lavender = "#ADA5CB"
  44. let s:g_lavender = "#363243"
  45. let s:magenta = "#FF00FF"
  46. " blues
  47. let s:d_dusty_blue = "#535E95"
  48. let s:dg_dusty_blue = "#406371"
  49. let s:lg_dusty_blue = "#8389A3"
  50. let s:dusty_blue = "#7993BD"
  51. let s:l_dusty_blue = "#729FCF"
  52. let s:blue = "#3B6BBD"
  53. let s:blue_lav = "#393CC3"
  54. let s:l_blue = "#848FB1"
  55. let s:b_blue = "#2D69FF"
  56. let s:vb_blue = "#2950CB"
  57. " greens, etc
  58. let s:olive = "#4C6C3D"
  59. let s:green = "#66CC66"
  60. let s:g_green = "#406A5C"
  61. let s:b_green = "#5AB578"
  62. let s:l_green = "#8BA692"
  63. let s:d_green = "#447864"
  64. " yellows and oranges
  65. let s:yellow = "#FFCC00"
  66. let s:brown_orange = "#CC6633"
  67. let s:yellow_orange = "#FF6600"
  68. let s:o_yellow = "#CC9933"
  69. let s:l_yellow = "#FFFF82"
  70. let s:b_yellow = "#FFFF00"
  71. " reds and red-oranges
  72. let s:l_red = "#FB4453"
  73. let s:d_red = "#871019"
  74. let s:l_orange = "#FCAF3E"
  75. let s:orange = "#FF3300"
  76. " Unused "Extra" colors
  77. let s:mustard = "#996633"
  78. let s:d_orange = "#E1593D"
  79. let s:brick = "#993333"
  80. let s:peach = "#FF9966"
  81. let s:vl_pink = "#FFDDCC"
  82. let s:d_pink = "#D15F7A"
  83. let s:b_red = "#990000"
  84. let s:lavender = "#9B8BD4"
  85. let s:l_cyan = "#99CCCC"
  86. let s:cyan = "#66CCCC"
  87. let s:b_cyan = "#33CCCC"
  88. let s:vl_cyan = "#99FFFF"
  89. let s:d_cyan = "#006666"
  90. let s:m_cyan = "#579CAD"
  91. let s:g_cyan = "#B6E3FF"
  92. " Function to set colors from variables
  93. function s:Color(name, color_settings)
  94. let color_string = ''
  95. for [color_type, color_value] in items(a:color_settings)
  96. let color_string .= ' ' . color_type . '=' . color_value
  97. endfor
  98. exec 'hi ' . a:name . color_string
  99. endfunction
  100. " Current Line
  101. if exists('mdark_current_line') && mdark_current_line == 1
  102. set cursorline
  103. call s:Color('CursorLine', {'guibg': s:line_col})
  104. endif
  105. if exists('mdark_current_col') && mdark_current_col == 1
  106. set cursorcolumn
  107. call s:Color('CursorColumn', {'guibg': s:line_col})
  108. endif
  109. " Basic Properties
  110. call s:Color('Normal', {'guifg': s:fg, 'guibg': s:bg})
  111. call s:Color('NonText', {'guifg': s:fg, 'guibg': s:d_gray, 'gui': 'none'})
  112. call s:Color('Cursor', {'guibg': s:fg})
  113. call s:Color('ICursor', {'guibg': s:fg})
  114. " Search
  115. call s:Color('Search', {'guifg': s:d_gray, 'guibg': s:l_orange})
  116. call s:Color('IncSearch', {'guifg': s:l_orange, 'guibg': s:d_gray})
  117. " Window Elements
  118. call s:Color('StatusLine', {'guifg': s:d_gray, 'guibg': s:fg, 'gui': 'none'})
  119. call s:Color('StatusLineNC', {'guifg': s:d_gray, 'guibg': s:m_gray, 'gui': 'none'})
  120. call s:Color('VertSplit', {'guifg': s:slate, 'guibg': s:m_gray, 'gui': 'none'})
  121. call s:Color('MoreMsg', {'guifg': s:l_dusty_blue})
  122. call s:Color('Question', {'guifg': s:green, 'gui': 'none'})
  123. call s:Color('WildMenu', {'guifg': s:o_white, 'guibg': s:o_black})
  124. call s:Color('LineNr', {'guifg': s:line_nr, 'guibg': s:black})
  125. call s:Color('Visual', {'guibg': s:g_lavender})
  126. call s:Color('ErrorMsg', {'guifg': s:white, 'guibg': s:d_red})
  127. call s:Color('WarningMsg', {'guifg': s:l_red})
  128. " Pmenu
  129. call s:Color('Pmenu', {'guibg': s:d_gray, 'guifg': s:o_white})
  130. call s:Color('PmenuSel', {'guibg': s:white, 'guifg': s:bg})
  131. call s:Color('PmenuSbar', {'guibg': s:slate})
  132. call s:Color('PmenuThumb', {'guifg': s:white})
  133. " Diff
  134. call s:Color('DiffDelete', {'guifg': s:d_gray, 'guibg': s:o_black})
  135. call s:Color('DiffAdd', {'guibg': s:d_red})
  136. call s:Color('DiffChange', {'guibg': s:d_gray})
  137. call s:Color('DiffText', {'guibg': s:black, 'gui': 'none'})
  138. " Folds
  139. call s:Color('Folded', {'guifg': s:g_green, 'guibg': '#204a87'})
  140. call s:Color('FoldColumn', {'guifg': s:d_dusty_blue, 'guibg': s:black})
  141. " Specials
  142. call s:Color('Title', {'guifg': s:l_orange})
  143. call s:Color('Todo', {'guifg': s:b_yellow, 'guibg': 'bg'})
  144. call s:Color('SpecialKey', {'guifg': s:l_red})
  145. " Tabs
  146. call s:Color('TabLine', {'guibg': s:o_black, 'guifg': s:m_gray})
  147. call s:Color('TabLineFill', {'guifg': s:o_black})
  148. call s:Color('TabLineSel', {'guibg': s:slate, 'guifg': s:o_white, 'gui': 'none'})
  149. " Matches
  150. call s:Color('MatchParen', {'guifg': s:d_gray, 'guibg': s:l_orange})
  151. " Tree
  152. call s:Color('Directory', {'guifg': s:white})
  153. " Syntax
  154. call s:Color('Comment', {'guifg': s:l_green, 'gui': 'italic'})
  155. " Constants
  156. call s:Color('Constant', {'guifg': s:green})
  157. call s:Color('Character', {'guifg': s:pink})
  158. call s:Color('String', {'guifg': s:l_pink})
  159. call s:Color('Number', {'guifg': s:d_green})
  160. call s:Color('Float', {'guifg': s:b_green})
  161. call s:Color('Boolean', {'guifg': s:olive})
  162. " Identifiers
  163. call s:Color('Identifier', {'guifg': s:l_purple})
  164. call s:Color('Function', {'guifg': s:dusty_blue, 'gui': 'bold'})
  165. " Statements
  166. call s:Color('Statement', {'guifg': s:blue, 'gui': 'none'})
  167. call s:Color('Conditional', {'guifg': s:b_blue})
  168. call s:Color('Repeat', {'guifg': s:vb_blue})
  169. call s:Color('Label', {'guifg': s:blue_lav})
  170. call s:Color('Operator', {'guifg': s:purple})
  171. call s:Color('Keyword', {'guifg': s:blue})
  172. call s:Color('Exception', {'guifg': s:l_blue})
  173. " Types
  174. call s:Color('Type', {'guifg': s:d_dusty_blue })
  175. call s:Color('StorageClass', {'guifg': s:d_dusty_blue })
  176. call s:Color('Structure', {'guifg': s:dg_dusty_blue, 'gui':'bold' })
  177. call s:Color('Typedef', {'guifg': s:lg_dusty_blue, 'gui':'bold'})
  178. " Preprocs
  179. call s:Color('Preproc', {'guifg': s:yellow})
  180. call s:Color('Include', {'guifg': s:brown_orange})
  181. call s:Color('Define', {'guifg': s:yellow_orange})
  182. call s:Color('Macro', {'guifg': s:o_yellow})
  183. call s:Color('PreCondit', {'guifg': s:l_orange})
  184. " Specials
  185. call s:Color('Special', {'guifg': s:white})
  186. call s:Color('SpecialChar', {'guifg': s:pink})
  187. call s:Color('Tag', {'guifg': s:l_red})
  188. call s:Color('Delimiter', {'guifg': s:l_lavender})
  189. call s:Color('SpecialComment', {'guifg': s:orange})
  190. call s:Color('Debug', {'guifg': s:l_yellow})
  191. " Misc
  192. call s:Color('Underlined', {'guifg': s:magenta})
  193. call s:Color('Ignore', {'guifg': s:m_gray})
  194. call s:Color('Error', {'guifg': s:white, 'guibg': s:d_red})
  195. " Language-Specific
  196. " PHP
  197. call s:Color('phpRegionDelimiter', {'guifg': s:purple})
  198. call s:Color('phpPropertySelector', {'guifg': s:m_gray})
  199. call s:Color('phpPropertySelectorInString', {'guifg': s:m_gray})
  200. call s:Color('phpOperator', {'guifg': s:m_gray})
  201. call s:Color('phpArrayPair', {'guifg': s:m_gray})
  202. call s:Color('phpAssignByRef', {'guifg': s:m_gray})
  203. call s:Color('phpRelation', {'guifg': s:m_gray})
  204. call s:Color('phpMemberSelector', {'guifg': s:m_gray})
  205. call s:Color('phpUnknownSelector', {'guifg': s:m_gray})
  206. call s:Color('phpVarSelector', {'guifg': s:fg})
  207. call s:Color('phpSemicolon', {'guifg': s:m_gray, 'gui': 'none'})
  208. call s:Color('phpFunctions', {'guifg': s:g_green})
  209. call s:Color('phpParent', {'guifg': s:m_gray})
  210. " JavaScript
  211. call s:Color('javaScriptBraces', {'guifg': s:m_gray})
  212. call s:Color('javaScriptOperator', {'guifg': s:m_gray})
  213. " HTML
  214. call s:Color('htmlTag', {'guifg': s:m_gray})
  215. call s:Color('htmlEndTag', {'guifg': s:m_gray})
  216. call s:Color('htmlTagName', {'guifg': s:fg})
  217. call s:Color('htmlSpecialTagName', {'guifg': s:fg})
  218. call s:Color('htmlArg', {'guifg': s:g_green})
  219. call s:Color('htmlTitle', {'guifg': s:green, 'gui': 'none'})
  220. hi link htmlH1 htmlTitle
  221. hi link htmlH2 htmlH1
  222. hi link htmlH3 htmlH1
  223. hi link htmlH4 htmlH1
  224. hi link htmlH5 htmlH1
  225. hi link htmlH6 htmlH1
  226. " XML
  227. hi link xmlTag htmlTag
  228. hi link xmlEndTag htmlEndTag
  229. hi link xmlAttrib htmlArg
  230. " CSS
  231. call s:Color('cssSelectorOp', {'guifg': s:o_white})
  232. hi link cssSelectorOp2 cssSelectorOp
  233. call s:Color('cssUIProp', {'guifg': s:g_green})
  234. hi link cssPagingProp cssUIProp
  235. hi link cssGeneratedContentProp cssUIProp
  236. hi link cssRenderProp cssUIProp
  237. hi link cssBoxProp cssUIProp
  238. hi link cssTextProp cssUIProp
  239. hi link cssColorProp cssUIProp
  240. hi link cssFontProp cssUIProp
  241. call s:Color('cssPseudoClassId', {'guifg': s:o_white})
  242. call s:Color('cssBraces', {'guifg': s:m_gray})
  243. call s:Color('cssIdentifier', {'guifg': s:l_orange})
  244. call s:Color('cssTagName', {'guifg': s:l_orange})
  245. hi link cssInclude Function
  246. hi link cssCommonAttr Constant
  247. hi link cssUIAttr Constant
  248. hi link cssTableAttr Constant
  249. hi link cssPagingAttr Constant
  250. hi link cssGeneratedContentAttr Constant
  251. hi link cssAuralAttr Constant
  252. hi link cssRenderAttr Constant
  253. hi link cssBoxAttr Constant
  254. hi link cssTextAttr Constant
  255. hi link cssColorAttr Constant
  256. hi link cssFontAttr Constant
  257. " Clean up
  258. delfunction s:Color