marklar.vim 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. " ------------------------------------------------------------------
  2. " Filename: marklar.vim
  3. " Last Modified: Nov, 30 2006 (13:01)
  4. " Version: 0.5
  5. " Maintainer: SM Smithfield (m_smithfield AT yahoo DOT com)
  6. " Copyright: 2006 SM Smithfield
  7. " This script is free software; you can redistribute it and/or
  8. " modify it under the terms of the GNU General Public License as
  9. " published by the Free Software Foundation; either version 2 of
  10. " the License, or (at your option) any later version.
  11. " Description: Vim colorscheme file.
  12. " Install: Put this file in the users colors directory (~/.vim/colors)
  13. " then load it with :colorscheme marklar
  14. " ------------------------------------------------------------------
  15. hi clear
  16. set background=dark
  17. if exists("syntax_on")
  18. syntax reset
  19. endif
  20. let g:colors_name = "marklar"
  21. if !exists("s:main")
  22. " OPTIONS:
  23. let s:bold_opt = 0
  24. let s:ignore_opt = 1
  25. function! s:main()
  26. if version >= 700
  27. call s:apply_opts()
  28. endif
  29. if s:bold_opt
  30. let s:bold = 'bold'
  31. else
  32. let s:bold = 'NONE'
  33. endif
  34. if s:ignore_opt
  35. " completely invisible
  36. let s:ignore = 'bg'
  37. else
  38. " nearly invisible
  39. let s:ignore = '#467C5C'
  40. endif
  41. execute "hi Constant guifg=#FFFFFF guibg=NONE ctermfg=7 cterm=NONE"
  42. execute "hi Identifier guifg=#38FF56 guibg=NONE gui=".s:bold." ctermfg=8 cterm=bold"
  43. execute "hi Statement guifg=#FFFF00 guibg=NONE gui=".s:bold." ctermfg=3 cterm=bold"
  44. execute "hi Special guifg=#25B9F8 guibg=bg gui=".s:bold." ctermfg=2 cterm=underline"
  45. execute "hi PreProc guifg=#FF80FF guibg=bg gui=NONE ctermfg=2"
  46. execute "hi Type guifg=#00FFFF guibg=NONE gui=".s:bold." ctermfg=6 cterm=bold"
  47. execute "hi Ignore guifg=".s:ignore." guibg=NONE ctermfg=0"
  48. hi Comment guifg=#00BBBB guibg=NONE ctermfg=6 cterm=none
  49. hi Cursor guifg=NONE guibg=#FF0000
  50. hi DiffAdd guifg=NONE guibg=#136769 ctermfg=4 ctermbg=7 cterm=NONE
  51. hi DiffDelete guifg=NONE guibg=#50694A ctermfg=1 ctermbg=7 cterm=NONE
  52. hi DiffChange guifg=fg guibg=#00463c gui=NONE ctermfg=4 ctermbg=2 cterm=NONE
  53. hi DiffText guifg=#7CFC94 guibg=#00463c gui=bold ctermfg=4 ctermbg=3 cterm=NONE
  54. hi Directory guifg=#25B9F8 guibg=NONE ctermfg=2
  55. hi Error guifg=#FFFFFF guibg=#000000 ctermfg=7 ctermbg=0 cterm=bold
  56. hi ErrorMsg guifg=#8eff2e guibg=#204d40
  57. hi FoldColumn guifg=#00BBBB guibg=#204d40
  58. hi Folded guifg=#44DDDD guibg=#204d40 ctermfg=0 ctermbg=8 cterm=bold
  59. hi IncSearch guibg=#52891f gui=bold
  60. hi LineNr guifg=#38ff56 guibg=#204d40
  61. hi ModeMsg guifg=#FFFFFF guibg=#0000FF ctermfg=7 ctermbg=4 cterm=bold
  62. hi MoreMsg guifg=#FFFFFF guibg=#00A261 ctermfg=7 ctermbg=2 cterm=bold
  63. hi NonText guifg=#00bbbb guibg=#204d40
  64. hi Normal guifg=#71C293 guibg=#06544a
  65. hi Question guifg=#FFFFFF guibg=#00A261
  66. hi Search guifg=NONE guibg=#0f374c ctermfg=3 ctermbg=0 cterm=bold
  67. hi SignColumn guifg=#00BBBB guibg=#204d40
  68. hi SpecialKey guifg=#00FFFF guibg=#266955
  69. hi StatusLine guifg=#245748 guibg=#71C293 gui=NONE cterm=reverse
  70. hi StatusLineNC guifg=#245748 guibg=#689C7C gui=NONE
  71. hi Title guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold
  72. hi Todo guifg=#FFFFFF guibg=#884400 ctermfg=6 ctermbg=4 cterm=NONE
  73. hi Underlined guifg=#df820c guibg=NONE gui=underline ctermfg=8 cterm=underline
  74. hi Visual guibg=#0B7260 gui=NONE
  75. hi WarningMsg guifg=#FFFFFF guibg=#FF0000 ctermfg=7 ctermbg=1 cterm=bold
  76. hi WildMenu guifg=#20012e guibg=#00a675 gui=bold ctermfg=NONE ctermbg=NONE cterm=bold
  77. "
  78. if version >= 700
  79. hi SpellBad guisp=#FF0000
  80. hi SpellCap guisp=#0000FF
  81. hi SpellRare guisp=#ff4046
  82. hi SpellLocal guisp=#000000 ctermbg=0
  83. hi Pmenu guifg=#00ffff guibg=#000000 ctermbg=0 ctermfg=6
  84. hi PmenuSel guifg=#ffff00 guibg=#000000 gui=bold cterm=bold ctermfg=3
  85. hi PmenuSbar guibg=#204d40 ctermbg=6
  86. hi PmenuThumb guifg=#38ff56 ctermfg=3
  87. hi CursorColumn guibg=#096354
  88. hi CursorLine guibg=#096354
  89. hi Tabline guifg=bg guibg=fg gui=NONE cterm=reverse,bold ctermfg=NONE ctermbg=NONE
  90. hi TablineSel guifg=#20012e guibg=#00a675 gui=bold
  91. hi TablineFill guifg=#689C7C
  92. hi MatchParen guifg=#38ff56 guibg=#0000ff gui=bold ctermbg=4
  93. endif
  94. "
  95. hi Tag guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold
  96. hi link Bold Tag
  97. "
  98. hi pythonPreCondit ctermfg=2 cterm=NONE
  99. execute "hi tkWidget guifg=#ffa0a0 guibg=bg gui=".s:bold." ctermfg=7 cterm=bold"
  100. endfunction
  101. if version >= 700
  102. let s:opts = {'bold': 0, 'ignore': 1}
  103. " preserves vim<7 compat, while letting me reuses some code
  104. function! s:apply_opts()
  105. let s:bold_opt = s:opts['bold']
  106. let s:ignore_opt = s:opts['ignore']
  107. endfunction
  108. function! s:print_opts(...)
  109. let d = a:000
  110. if len(a:000) == 0
  111. let d = keys(s:opts)
  112. endif
  113. for k in d
  114. echo k.': '.s:opts[k]
  115. endfor
  116. endfunction
  117. function! s:Marklar(...)
  118. let args = a:000
  119. if len(args) == 0
  120. call s:print_opts()
  121. else
  122. while len(args)>0
  123. " take first arg
  124. let k = args[0]
  125. let args = args[1:]
  126. " is it a key?
  127. if k =~ '\a\+!'
  128. " does it bang?
  129. let k = strpart(k,0,strlen(k)-1)
  130. let s:opts[k] = !s:opts[k]
  131. call s:main()
  132. elseif k =~ '\a\+?'
  133. " does it quiz?
  134. let k = strpart(k,0,strlen(k)-1)
  135. call s:print_opts(k)
  136. elseif len(args)
  137. " is there another arg?
  138. " take it
  139. let v = args[0]
  140. let args = args[1:]
  141. " is it legal value?
  142. if v == 0 || v == 1
  143. " assign val->key
  144. let s:opts[k] = v
  145. call s:main()
  146. else
  147. echoerr "(".v.") Bad value. Expected 0 or 1."
  148. endif
  149. else
  150. endif
  151. endwhile
  152. endif
  153. endfunction
  154. command! -nargs=* Marklar :call s:Marklar(<f-args>)
  155. endif
  156. endif
  157. call s:main()