Advertisement
msjche

hybrid.vim

Aug 14th, 2013
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.13 KB | None | 0 0
  1. " File: hybrid.vim
  2. " Maintainer: Andrew Wong (w0ng)
  3. " URL: https://github.com/w0ng/vim-hybrid
  4. " Modified: 27 Jan 2013 07:33 AM AEST
  5. " License: MIT
  6.  
  7. " Description:"{{{
  8. " ----------------------------------------------------------------------------
  9. " The RGB colour palette is taken from Tomorrow-Night.vim:
  10. " https://github.com/chriskempson/vim-tomorrow-theme
  11. "
  12. " The syntax highlighting scheme is taken from jellybeans.vim:
  13. " https://github.com/nanotech/jellybeans.vim
  14. "
  15. " The code taken from solarized.vim
  16. " https://github.com/altercation/vim-colors-solarized
  17.  
  18. "}}}
  19. " Requirements And Recommendations:"{{{
  20. " ----------------------------------------------------------------------------
  21. " This colourscheme is intended for use on:
  22. " - gVim 7.3 for Linux, Mac and Windows.
  23. " - Vim 7.3 for Linux, using a 256 colour enabled terminal.
  24. "
  25. " By default, Vim will use the closest matching cterm equivalent of the RGB
  26. " colours.
  27. "
  28. " However, Due to the limited 256 palette, colours in Vim and gVim will still
  29. " be noticeably different. In order to get a uniform appearance and the way
  30. " that this colourscheme was intended, it is HIGHLY recommended that you:
  31. "
  32. " 1. Add these colours to ~/.Xresources:
  33. "
  34. " https://gist.github.com/3278077
  35. "
  36. " 2. Use Xresources colours by setting in ~/.vimrc:
  37. "
  38. " let g:hybrid_use_Xresources = 1
  39. " colorscheme hybrid
  40.  
  41. "}}}
  42. " Initialisation:"{{{
  43. " ----------------------------------------------------------------------------
  44. if !has("gui_running") && &t_Co < 256
  45. finish
  46. endif
  47.  
  48. if !exists("g:hybrid_use_Xresources")
  49. let g:hybrid_use_Xresources = 0
  50. endif
  51.  
  52. set background=dark
  53. hi clear
  54.  
  55. if exists("syntax_on")
  56. syntax reset
  57. endif
  58.  
  59. let colors_name = "hybrid"
  60.  
  61. "}}}
  62. " GUI And Cterm Palettes:"{{{
  63. " ----------------------------------------------------------------------------
  64. if has("gui_running")
  65. let s:vmode = "gui"
  66. let s:background = "#242424"
  67. let s:foreground = "#c5c8c6"
  68. let s:selection = "#ffffff"
  69. let s:line = "#282a2e"
  70. let s:comment = "#969896"
  71. let s:red = "#cc6666"
  72. let s:orange = "#de935f"
  73. let s:yellow = "#f0c674"
  74. let s:green = "#b5bd68"
  75. let s:aqua = "#8abeb7"
  76. let s:blue = "#81a2be"
  77. let s:purple = "#b294bb"
  78. let s:window = "#303030"
  79. let s:darkcolumn = "#1c1c1c"
  80. let s:addbg = "#5F875F"
  81. let s:addfg = "#d7ffaf"
  82. let s:changebg = "#5F5F87"
  83. let s:changefg = "#d7d7ff"
  84. else
  85. let s:vmode = "cterm"
  86. let s:background = "234"
  87. let s:window = "236"
  88. let s:darkcolumn = "7"
  89. let s:addbg = "65"
  90. let s:addfg = "193"
  91. let s:changebg = "60"
  92. let s:changefg = "189"
  93. if g:hybrid_use_Xresources == 1
  94. let s:foreground = "15" " White
  95. let s:selection = "9" " LightGrey
  96. let s:selection = "10" " LightGrey
  97. let s:line = "0" " Black
  98. let s:comment = "7" " LightGrey
  99. let s:red = "9" " LightRed
  100. let s:orange = "3" " DarkYellow
  101. let s:yellow = "11" " LightYellow
  102. let s:green = "10" " LightGreen
  103. let s:aqua = "14" " LightCyan
  104. let s:blue = "12" " LightBlue
  105. let s:purple = "13" " LightMagenta
  106. else
  107. let s:foreground = "250"
  108. let s:selection = "237"
  109. let s:line = "235"
  110. let s:comment = "246"
  111. let s:red = "167"
  112. let s:orange = "173"
  113. let s:yellow = "221"
  114. let s:green = "143"
  115. let s:aqua = "109"
  116. let s:blue = "110"
  117. let s:purple = "139"
  118. endif
  119. endif
  120.  
  121. "}}}
  122. " Formatting Options:"{{{
  123. " ----------------------------------------------------------------------------
  124. let s:none = "NONE"
  125. let s:t_none = "NONE"
  126. let s:n = "NONE"
  127. let s:c = ",undercurl"
  128. let s:r = ",reverse"
  129. let s:s = ",standout"
  130. let s:b = ",bold"
  131. let s:u = ",underline"
  132. let s:i = ",italic"
  133.  
  134. "}}}
  135. " Highlighting Primitives:"{{{
  136. " ----------------------------------------------------------------------------
  137. exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'"
  138. exe "let s:bg_foreground = ' ".s:vmode."bg=".s:foreground."'"
  139. exe "let s:bg_background = ' ".s:vmode."bg=".s:background."'"
  140. exe "let s:bg_selection = ' ".s:vmode."bg=".s:selection ."'"
  141. exe "let s:bg_line = ' ".s:vmode."bg=".s:line ."'"
  142. exe "let s:bg_comment = ' ".s:vmode."bg=".s:comment ."'"
  143. exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'"
  144. exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'"
  145. exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'"
  146. exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'"
  147. exe "let s:bg_aqua = ' ".s:vmode."bg=".s:aqua ."'"
  148. exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'"
  149. exe "let s:bg_purple = ' ".s:vmode."bg=".s:purple ."'"
  150. exe "let s:bg_window = ' ".s:vmode."bg=".s:window ."'"
  151. exe "let s:bg_darkcolumn = ' ".s:vmode."bg=".s:darkcolumn."'"
  152. exe "let s:bg_addbg = ' ".s:vmode."bg=".s:addbg ."'"
  153. exe "let s:bg_addfg = ' ".s:vmode."bg=".s:addfg ."'"
  154. exe "let s:bg_changebg = ' ".s:vmode."bg=".s:changebg ."'"
  155. exe "let s:bg_changefg = ' ".s:vmode."bg=".s:changefg ."'"
  156.  
  157. exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'"
  158. exe "let s:fg_foreground = ' ".s:vmode."fg=".s:foreground."'"
  159. exe "let s:fg_background = ' ".s:vmode."fg=".s:background."'"
  160. exe "let s:fg_selection = ' ".s:vmode."fg=".s:selection ."'"
  161. exe "let s:fg_line = ' ".s:vmode."fg=".s:line ."'"
  162. exe "let s:fg_comment = ' ".s:vmode."fg=".s:comment ."'"
  163. exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'"
  164. exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'"
  165. exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'"
  166. exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'"
  167. exe "let s:fg_aqua = ' ".s:vmode."fg=".s:aqua ."'"
  168. exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'"
  169. exe "let s:fg_purple = ' ".s:vmode."fg=".s:purple ."'"
  170. exe "let s:fg_window = ' ".s:vmode."fg=".s:window ."'"
  171. exe "let s:fg_darkcolumn = ' ".s:vmode."fg=".s:darkcolumn."'"
  172. exe "let s:fg_addbg = ' ".s:vmode."fg=".s:addbg ."'"
  173. exe "let s:fg_addfg = ' ".s:vmode."fg=".s:addfg ."'"
  174. exe "let s:fg_changebg = ' ".s:vmode."fg=".s:changebg ."'"
  175. exe "let s:fg_changefg = ' ".s:vmode."fg=".s:changefg ."'"
  176.  
  177. exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE" ."'"
  178. exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b ."'"
  179. exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b ."'"
  180. exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u ."'"
  181. exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
  182. exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u ."'"
  183. exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c ."'"
  184. exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i ."'"
  185. exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s ."'"
  186. exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r ."'"
  187. exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'"
  188.  
  189. if has("gui_running")
  190. exe "let s:sp_none = ' guisp=".s:none ."'"
  191. exe "let s:sp_foreground = ' guisp=".s:foreground."'"
  192. exe "let s:sp_background = ' guisp=".s:background."'"
  193. exe "let s:sp_selection = ' guisp=".s:selection ."'"
  194. exe "let s:sp_line = ' guisp=".s:line ."'"
  195. exe "let s:sp_comment = ' guisp=".s:comment ."'"
  196. exe "let s:sp_red = ' guisp=".s:red ."'"
  197. exe "let s:sp_orange = ' guisp=".s:orange ."'"
  198. exe "let s:sp_yellow = ' guisp=".s:yellow ."'"
  199. exe "let s:sp_green = ' guisp=".s:green ."'"
  200. exe "let s:sp_aqua = ' guisp=".s:aqua ."'"
  201. exe "let s:sp_blue = ' guisp=".s:blue ."'"
  202. exe "let s:sp_purple = ' guisp=".s:purple ."'"
  203. exe "let s:sp_window = ' guisp=".s:window ."'"
  204. exe "let s:sp_addbg = ' guisp=".s:addbg ."'"
  205. exe "let s:sp_addfg = ' guisp=".s:addfg ."'"
  206. exe "let s:sp_changebg = ' guisp=".s:changebg ."'"
  207. exe "let s:sp_changefg = ' guisp=".s:changefg ."'"
  208. else
  209. let s:sp_none = ""
  210. let s:sp_foreground = ""
  211. let s:sp_background = ""
  212. let s:sp_selection = ""
  213. let s:sp_line = ""
  214. let s:sp_comment = ""
  215. let s:sp_red = ""
  216. let s:sp_orange = ""
  217. let s:sp_yellow = ""
  218. let s:sp_green = ""
  219. let s:sp_aqua = ""
  220. let s:sp_blue = ""
  221. let s:sp_purple = ""
  222. let s:sp_window = ""
  223. let s:sp_addbg = ""
  224. let s:sp_addfg = ""
  225. let s:sp_changebg = ""
  226. let s:sp_changefg = ""
  227. endif
  228.  
  229. "}}}
  230. " Vim Highlighting: (see :help highlight-groups)"{{{
  231. " ----------------------------------------------------------------------------
  232. exe "hi! ColorColumn" .s:fg_none .s:bg_line .s:fmt_none
  233. " Conceal"
  234. " Cursor"
  235. " CursorIM"
  236. exe "hi! CursorColumn" .s:fg_none .s:bg_line .s:fmt_none
  237. exe "hi! CursorLine" .s:fg_none .s:bg_line .s:fmt_none
  238. exe "hi! Directory" .s:fg_blue .s:bg_none .s:fmt_none
  239. exe "hi! DiffAdd" .s:fg_addfg .s:bg_addbg .s:fmt_none
  240. exe "hi! DiffChange" .s:fg_changefg .s:bg_changebg .s:fmt_none
  241. exe "hi! DiffDelete" .s:fg_background .s:bg_red .s:fmt_none
  242. exe "hi! DiffText" .s:fg_background .s:bg_blue .s:fmt_none
  243. exe "hi! ErrorMsg" .s:fg_background .s:bg_red .s:fmt_stnd
  244. exe "hi! VertSplit" .s:fg_window .s:bg_none .s:fmt_none
  245. exe "hi! Folded" .s:fg_comment .s:bg_darkcolumn .s:fmt_none
  246. exe "hi! FoldColumn" .s:fg_none .s:bg_darkcolumn .s:fmt_none
  247. exe "hi! SignColumn" .s:fg_none .s:bg_darkcolumn .s:fmt_none
  248. " Incsearch"
  249. exe "hi! LineNr" .s:fg_selection .s:bg_none .s:fmt_none
  250. exe "hi! CursorLineNr" .s:fg_yellow .s:bg_none .s:fmt_bold
  251. exe "hi! MatchParen" .s:fg_background .s:bg_changebg .s:fmt_none
  252. exe "hi! ModeMsg" .s:fg_green .s:bg_none .s:fmt_none
  253. exe "hi! MoreMsg" .s:fg_green .s:bg_none .s:fmt_none
  254. exe "hi! NonText" .s:fg_selection .s:bg_none .s:fmt_none
  255. exe "hi! Pmenu" .s:fg_foreground .s:bg_selection .s:fmt_none
  256. exe "hi! PmenuSel" .s:fg_foreground .s:bg_selection .s:fmt_revr
  257. " PmenuSbar"
  258. " PmenuThumb"
  259. exe "hi! Question" .s:fg_green .s:bg_none .s:fmt_none
  260. exe "hi! Search" .s:fg_background .s:bg_yellow .s:fmt_none
  261. exe "hi! SpecialKey" .s:fg_selection .s:bg_none .s:fmt_none
  262. exe "hi! SpellBad" .s:fg_red .s:bg_none .s:fmt_undr
  263. exe "hi! SpellCap" .s:fg_blue .s:bg_none .s:fmt_undr
  264. exe "hi! SpellLocal" .s:fg_aqua .s:bg_none .s:fmt_undr
  265. exe "hi! SpellRare" .s:fg_purple .s:bg_none .s:fmt_undr
  266. exe "hi! StatusLine" .s:fg_background .s:bg_foreground .s:fmt_revr
  267. exe "hi! StatusLineNC" .s:fg_window .s:bg_comment .s:fmt_revr
  268. exe "hi! TabLine" .s:fg_foreground .s:bg_darkcolumn .s:fmt_revr
  269. " TabLineFill"
  270. " TabLineSel"
  271. exe "hi! Title" .s:fg_yellow .s:bg_none .s:fmt_none
  272. exe "hi! Visual" .s:fg_none .s:bg_selection .s:fmt_none
  273. " VisualNos"
  274. exe "hi! WarningMsg" .s:fg_red .s:bg_none .s:fmt_none
  275. " WildMenu"
  276.  
  277. " Use Xresources for background colour
  278. if has('gui_running') || g:hybrid_use_Xresources != 1
  279. exe "hi! Normal" .s:fg_foreground .s:bg_background .s:fmt_none
  280. else
  281. exe "hi! Normal" .s:fg_foreground .s:bg_none .s:fmt_none
  282. endif
  283.  
  284. "}}}
  285. " Generic Syntax Highlighting: (see :help group-name)"{{{
  286. " ----------------------------------------------------------------------------
  287. exe "hi! Comment" .s:fg_comment .s:bg_none .s:fmt_none
  288.  
  289. exe "hi! Constant" .s:fg_red .s:bg_none .s:fmt_none
  290. exe "hi! String" .s:fg_green .s:bg_none .s:fmt_none
  291. " Character"
  292. " Number"
  293. " Boolean"
  294. " Float"
  295.  
  296. exe "hi! Identifier" .s:fg_purple .s:bg_none .s:fmt_none
  297. exe "hi! Function" .s:fg_yellow .s:bg_none .s:fmt_none
  298.  
  299. exe "hi! Statement" .s:fg_blue .s:bg_none .s:fmt_none
  300. " Conditional"
  301. " Repeat"
  302. " Label"
  303. exe "hi! Operator" .s:fg_foreground .s:bg_none .s:fmt_none
  304. " Keyword"
  305. " Exception"
  306.  
  307. exe "hi! PreProc" .s:fg_aqua .s:bg_none .s:fmt_none
  308. " Include"
  309. " Define"
  310. " Macro"
  311. " PreCondit"
  312.  
  313. exe "hi! Type" .s:fg_orange .s:bg_none .s:fmt_none
  314. " StorageClass"
  315. exe "hi! Structure" .s:fg_aqua .s:bg_none .s:fmt_none
  316. " Typedef"
  317.  
  318. exe "hi! Special" .s:fg_green .s:bg_none .s:fmt_none
  319. " SpecialChar"
  320. " Tag"
  321. " Delimiter"
  322. " SpecialComment"
  323. " Debug"
  324. "
  325. exe "hi! Underlined" .s:fg_blue .s:bg_none .s:fmt_none
  326.  
  327. exe "hi! Ignore" .s:fg_none .s:bg_none .s:fmt_none
  328.  
  329. exe "hi! Error" .s:fg_red .s:bg_purple .s:fmt_undr
  330.  
  331. exe "hi! Todo" .s:fg_addfg .s:bg_none .s:fmt_none
  332.  
  333. " Quickfix window highlighting
  334. exe "hi! qfLineNr" .s:fg_yellow .s:bg_none .s:fmt_none
  335. " qfFileName"
  336. " qfLineNr"
  337. " qfError"
  338.  
  339. "}}}
  340. " Diff Syntax Highlighting:"{{{
  341. " ----------------------------------------------------------------------------
  342. " Diff
  343. " diffOldFile
  344. " diffNewFile
  345. " diffFile
  346. " diffOnly
  347. " diffIdentical
  348. " diffDiffer
  349. " diffBDiffer
  350. " diffIsA
  351. " diffNoEOL
  352. " diffCommon
  353. hi! link diffRemoved Constant
  354. " diffChanged
  355. hi! link diffAdded Special
  356. " diffLine
  357. " diffSubname
  358. " diffComment
  359.  
  360. "}}}
  361. " Legal:"{{{
  362. " ----------------------------------------------------------------------------
  363. " Copyright (c) 2011 Ethan Schoonover
  364. " Copyright (c) 2009-2012 NanoTech
  365. " Copyright (c) 2012 w0ng
  366. "
  367. " Permission is hereby granted, free of charge, to any per‐
  368. " son obtaining a copy of this software and associated doc‐
  369. " umentation files (the “Software”), to deal in the Soft‐
  370. " ware without restriction, including without limitation
  371. " the rights to use, copy, modify, merge, publish, distrib‐
  372. " ute, sublicense, and/or sell copies of the Software, and
  373. " to permit persons to whom the Software is furnished to do
  374. " so, subject to the following conditions:
  375. "
  376. " The above copyright notice and this permission notice
  377. " shall be included in all copies or substantial portions
  378. " of the Software.
  379. "
  380. " THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY
  381. " KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  382. " THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU‐
  383. " LAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  384. " AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  385. " DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CON‐
  386. " TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐
  387. " NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  388. " THE SOFTWARE.
  389.  
  390. " }}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement