├── images ├── c_screenshot.png ├── css_screenshot.png ├── html_screenshot.png ├── python_screenshot.png ├── vimrc_screenshot.png ├── clojure_screenshot.png ├── exterminadorfuturo.jpg └── clojure_rp_screenshot.png ├── README.rst └── colors └── preto.vim /images/c_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ewilazarus/preto/HEAD/images/c_screenshot.png -------------------------------------------------------------------------------- /images/css_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ewilazarus/preto/HEAD/images/css_screenshot.png -------------------------------------------------------------------------------- /images/html_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ewilazarus/preto/HEAD/images/html_screenshot.png -------------------------------------------------------------------------------- /images/python_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ewilazarus/preto/HEAD/images/python_screenshot.png -------------------------------------------------------------------------------- /images/vimrc_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ewilazarus/preto/HEAD/images/vimrc_screenshot.png -------------------------------------------------------------------------------- /images/clojure_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ewilazarus/preto/HEAD/images/clojure_screenshot.png -------------------------------------------------------------------------------- /images/exterminadorfuturo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ewilazarus/preto/HEAD/images/exterminadorfuturo.jpg -------------------------------------------------------------------------------- /images/clojure_rp_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ewilazarus/preto/HEAD/images/clojure_rp_screenshot.png -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | 2 | .. image:: images/exterminadorfuturo.jpg 3 | 4 | | 5 | | A minimal dark color scheme for VIM, inspired by `badwolf`_ and `256_noir`_. 6 | 7 | Examples 8 | ======== 9 | 10 | C: 11 | -- 12 | 13 | .. image:: images/c_screenshot.png 14 | 15 | Python: 16 | ------ 17 | 18 | .. image:: images/python_screenshot.png 19 | 20 | Clojure: 21 | ------- 22 | 23 | .. image:: images/clojure_screenshot.png 24 | 25 | Clojure (with Rainbow Parentheses): 26 | ---------------------------------- 27 | 28 | .. image:: images/clojure_rp_screenshot.png 29 | 30 | HTML: 31 | ---- 32 | 33 | .. image:: images/html_screenshot.png 34 | 35 | CSS: 36 | --- 37 | 38 | .. image:: images/css_screenshot.png 39 | 40 | 41 | .. _`badwolf`: https://github.com/sjl/badwolf/ 42 | .. _`256_noir`: https://github.com/andreasvc/vim-256noir 43 | -------------------------------------------------------------------------------- /colors/preto.vim: -------------------------------------------------------------------------------- 1 | " vim:fdm=marker:foldlevel=0 2 | " ____ _ 3 | " | _ \ _ __ ___| |_ ___ 4 | " | |_) | '__/ _ \ __/ _ \ 5 | " | __/| | | __/ || (_) | 6 | " |_| |_| \___|\__\___/ 7 | " 8 | " A minimal dark theme for VIM 9 | 10 | " Reset -------------------------------------------------------------------{{{1 11 | 12 | set background=dark 13 | highlight clear 14 | if exists("syntax_on") 15 | syntax reset 16 | endif 17 | let g:colors_name = "preto" 18 | 19 | 20 | " Palette ---------------------------------------------------------------- {{{1 21 | 22 | let s:palette = {} 23 | 24 | let s:palette.black = [16 , "#000000"] 25 | let s:palette.gray01 = [232, "#080808"] 26 | let s:palette.gray02 = [233, "#121212"] 27 | let s:palette.gray03 = [234, "#1c1c1c"] 28 | let s:palette.gray04 = [235, "#262626"] 29 | let s:palette.gray05 = [236, "#303030"] 30 | let s:palette.gray06 = [237, "#3a3a3a"] 31 | let s:palette.gray07 = [238, "#444444"] 32 | let s:palette.gray08 = [239, "#4e4e4e"] 33 | let s:palette.gray09 = [240, "#585858"] 34 | let s:palette.gray10 = [241, "#606060"] 35 | let s:palette.gray11 = [242, "#666666"] 36 | let s:palette.gray12 = [243, "#767676"] 37 | let s:palette.gray13 = [244, "#808080"] 38 | let s:palette.gray14 = [245, "#8a8a8a"] 39 | let s:palette.gray15 = [246, "#949494"] 40 | let s:palette.gray16 = [247, "#9e9e9e"] 41 | let s:palette.gray17 = [248, "#a8a8a8"] 42 | let s:palette.gray18 = [249, "#b2b2b2"] 43 | let s:palette.gray19 = [250, "#bcbcbc"] 44 | let s:palette.gray20 = [251, "#c6c6c6"] 45 | let s:palette.gray21 = [252, "#d0d0d0"] 46 | let s:palette.gray22 = [253, "#dadada"] 47 | let s:palette.gray23 = [254, "#e4e4e4"] 48 | let s:palette.white = [255, "#eeeeee"] 49 | 50 | let s:palette.cyan = [6 , "#008080"] 51 | let s:palette.darkblue = [18 , "#000087"] 52 | let s:palette.darkgreen = [22 , "#005f00"] 53 | let s:palette.blue = [33 , "#0087ff"] 54 | let s:palette.green = [42 , "#00d787"] 55 | let s:palette.darkred = [52 , "#5f0000"] 56 | let s:palette.darkpurple = [53 , "#5f005f"] 57 | let s:palette.darkyellow = [58 , "#5f5f00"] 58 | let s:palette.red = [124, "#af0000"] 59 | let s:palette.purple = [129, "#af00ff"] 60 | let s:palette.brown = [130, "#af5f00"] 61 | let s:palette.orange = [166, "#d75f00"] 62 | let s:palette.pink = [200, "#ff00d7"] 63 | let s:palette.yellow = [228, "#ffff87"] 64 | 65 | 66 | " Utilities -------------------------------------------------------------- {{{1 67 | 68 | function! s:HL(item, fgColor, bgColor, style, ...) 69 | let undesirable_runtimes = a:000 70 | for runtime in undesirable_runtimes 71 | if has(runtime) 72 | return 73 | end 74 | endfor 75 | 76 | let target = 'cterm' 77 | let pindex = 0 78 | if has('gui_running') || has('nvim') 79 | let target = 'gui' 80 | let pindex = 1 81 | end 82 | 83 | let command = 'hi ' . a:item 84 | let command .= ' ' . target . 'fg=' . a:fgColor[pindex] 85 | let command .= ' ' . target . 'bg=' . a:bgColor[pindex] 86 | let command .= ' ' . target . '=' . a:style 87 | 88 | execute command 89 | endfunction 90 | 91 | 92 | " Composition ------------------------------------------------------------ {{{1 93 | 94 | " PRIMITIVES 95 | call s:HL('Boolean' , s:palette.gray09, s:palette.black , 'bold' ) 96 | call s:HL('Character' , s:palette.gray09, s:palette.black , 'bold' ) 97 | call s:HL('Constant' , s:palette.gray09, s:palette.black , 'bold' ) 98 | call s:HL('Float' , s:palette.gray09, s:palette.black , 'bold' ) 99 | call s:HL('Number' , s:palette.gray09, s:palette.black , 'bold' ) 100 | call s:HL('String' , s:palette.gray12, s:palette.black , 'none' ) 101 | call s:HL('SpecialChar' , s:palette.white , s:palette.black , 'none' ) 102 | 103 | " COMMENTS 104 | call s:HL('Comment' , s:palette.gray05, s:palette.black , 'bold' ) 105 | call s:HL('SpecialComment', s:palette.gray09, s:palette.black , 'bold' ) 106 | call s:HL('Title' , s:palette.gray09, s:palette.black , 'bold' ) 107 | call s:HL('Todo' , s:palette.purple, s:palette.black , 'bold' ) 108 | 109 | " LINES, COLUMNS 110 | call s:HL('LineNr' , s:palette.gray06, s:palette.black , 'bold' ) 111 | call s:HL('CursorLine' , s:palette.white , s:palette.gray03, 'none' ) 112 | call s:HL('CursorLineNr' , s:palette.gray09, s:palette.black , 'bold' ) 113 | 114 | call s:HL('ColorColumn' , s:palette.white , s:palette.gray03, 'none' ) 115 | call s:HL('CursorColumn' , s:palette.gray16, s:palette.gray03, 'none' ) 116 | 117 | " VISUAL MODE 118 | call s:HL('Visual' , s:palette.green , s:palette.gray06, 'none' ) 119 | call s:HL('VisualNOS' , s:palette.green , s:palette.gray06, 'none' ) 120 | 121 | " SEARCH 122 | call s:HL('Search' , s:palette.black , s:palette.yellow, 'bold' ) 123 | call s:HL('IncSearch' , s:palette.yellow, s:palette.black , 'bold' ) 124 | 125 | " SPELLING 126 | call s:HL('SpellBad' , s:palette.white , s:palette.red , 'bold' ) 127 | call s:HL('SpellCap' , s:palette.white , s:palette.red , 'bold' ) 128 | call s:HL('SpellLocal' , s:palette.white , s:palette.red , 'bold' ) 129 | call s:HL('SpellRare' , s:palette.white , s:palette.red , 'bold' ) 130 | 131 | " ERROR 132 | call s:HL('Error' , s:palette.red , s:palette.black , 'bold' ) 133 | 134 | " COMMAND MODE MESSAGES 135 | call s:HL('ErrorMsg' , s:palette.red , s:palette.black , 'bold' ) 136 | call s:HL('WarningMsg' , s:palette.brown , s:palette.black , 'bold' ) 137 | call s:HL('ModeMsg' , s:palette.white , s:palette.black , 'bold' ) 138 | call s:HL('MoreMsg' , s:palette.white , s:palette.black , 'bold' ) 139 | 140 | " PREPROCESSOR DIRECTIVES 141 | call s:HL('Include' , s:palette.white , s:palette.black , 'bold' ) 142 | call s:HL('Define' , s:palette.white , s:palette.black , 'bold' ) 143 | call s:HL('Macro' , s:palette.white , s:palette.black , 'bold' ) 144 | call s:HL('PreCondit' , s:palette.white , s:palette.black , 'bold' ) 145 | call s:HL('PreProc' , s:palette.white , s:palette.black , 'bold' ) 146 | 147 | " BINDINGS 148 | call s:HL('Identifier' , s:palette.white , s:palette.black , 'bold' ) 149 | call s:HL('Function' , s:palette.white , s:palette.black , 'bold' ) 150 | call s:HL('Keyword' , s:palette.white , s:palette.black , 'bold' ) 151 | call s:HL('Operator' , s:palette.white , s:palette.black , 'bold' ) 152 | 153 | " TYPES 154 | call s:HL('Type' , s:palette.white , s:palette.black , 'bold' ) 155 | call s:HL('Typedef' , s:palette.white , s:palette.black , 'bold' ) 156 | call s:HL('StorageClass' , s:palette.white , s:palette.black , 'bold' ) 157 | call s:HL('Structure' , s:palette.white , s:palette.black , 'bold' ) 158 | 159 | " FLOW CONTROL 160 | call s:HL('Statement' , s:palette.white , s:palette.black , 'bold' ) 161 | call s:HL('Conditional' , s:palette.white , s:palette.black , 'bold' ) 162 | call s:HL('Repeat' , s:palette.white , s:palette.black , 'bold' ) 163 | call s:HL('Label' , s:palette.white , s:palette.black , 'bold' ) 164 | call s:HL('Exception' , s:palette.white , s:palette.black , 'bold' ) 165 | 166 | " MISC 167 | call s:HL('Normal' , s:palette.gray19, s:palette.black , 'none' ) 168 | call s:HL('Cursor' , s:palette.white , s:palette.black , 'none' , 'gui_macvim') 169 | call s:HL('Underlined' , s:palette.gray12, s:palette.black , 'underline') 170 | call s:HL('SpecialKey' , s:palette.white , s:palette.black , 'bold' ) 171 | call s:HL('NonText' , s:palette.white , s:palette.black , 'bold' ) 172 | call s:HL('Directory' , s:palette.orange, s:palette.black , 'none' ) 173 | 174 | " FOLD 175 | call s:HL('FoldColumn' , s:palette.gray06, s:palette.black , 'bold' ) 176 | call s:HL('Folded' , s:palette.gray06, s:palette.black , 'bold' ) 177 | 178 | " PARENTHESIS 179 | call s:HL('MatchParen' , s:palette.orange, s:palette.black , 'bold' ) 180 | 181 | " POPUP 182 | call s:HL('Pmenu' , s:palette.white , s:palette.gray09, 'none' ) 183 | call s:HL('PmenuSbar' , s:palette.black , s:palette.gray19, 'none' ) 184 | call s:HL('PmenuSel' , s:palette.black , s:palette.gray19, 'none' ) 185 | call s:HL('PmenuThumb' , s:palette.gray01, s:palette.gray09, 'none' ) 186 | 187 | " SPLITS 188 | call s:HL('VertSplit' , s:palette.gray19, s:palette.black , 'none' ) 189 | 190 | " OTHERS 191 | call s:HL('Debug' , s:palette.white , s:palette.black , 'none' ) 192 | call s:HL('Delimiter' , s:palette.white , s:palette.black , 'none' ) 193 | call s:HL('Question' , s:palette.white , s:palette.black , 'none' ) 194 | call s:HL('Special' , s:palette.white , s:palette.black , 'none' ) 195 | call s:HL('StatusLine' , s:palette.white , s:palette.black , 'none' , 'gui_macvim') 196 | call s:HL('StatusLineNC' , s:palette.white , s:palette.black , 'none' , 'gui_macvim') 197 | call s:HL('Tag' , s:palette.white , s:palette.black , 'none' ) 198 | call s:HL('WildMenu' , s:palette.white , s:palette.black , 'none' ) 199 | 200 | " DIFF 201 | call s:HL('DiffAdd' , s:palette.white , s:palette.green , 'none' ) 202 | call s:HL('DiffChange' , s:palette.white , s:palette.blue , 'none' ) 203 | call s:HL('DiffDelete' , s:palette.white , s:palette.red , 'none' ) 204 | call s:HL('DiffText' , s:palette.black , s:palette.yellow, 'none' ) 205 | 206 | 207 | " Links ------------------------------------------------------------------ {{{1 208 | 209 | " TODO 210 | 211 | 212 | " Filetype Specific ------------------------------------------------------ {{{1 213 | 214 | " TODO 215 | 216 | 217 | " Plugin Specific -------------------------------------------------------- {{{1 218 | 219 | " RAINBOW PARENTHESIS 220 | 221 | let g:rbpt_colorpairs = [ 222 | \ s:palette.brown, 223 | \ s:palette.gray11, 224 | \ s:palette.purple, 225 | \ s:palette.green, 226 | \ s:palette.white, 227 | \ s:palette.blue, 228 | \ s:palette.yellow, 229 | \ s:palette.red, 230 | \ s:palette.brown, 231 | \ s:palette.gray13, 232 | \ s:palette.cyan, 233 | \ s:palette.darkpurple, 234 | \ s:palette.darkgreen, 235 | \ s:palette.darkblue, 236 | \ s:palette.darkyellow, 237 | \ s:palette.darkred 238 | \ ] 239 | --------------------------------------------------------------------------------