hybrid.vim 17 KB

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