├── README.md └── colors └── termschool.vim /README.md: -------------------------------------------------------------------------------- 1 | # termschool 2 | 3 | ## An improved codeschool like vim theme for 256-color terminals 4 | 5 | termschool is a vim theme optimized for 256-color terminals. The theme 6 | "medium/dark" and makes heavy use of greys, greens and blues in pastel tones. 7 | 8 | This is a screenshot of vim running termschool: 9 | 10 | ![vi-termschool](https://github.com/marcopaganini/termschool-vim-theme/assets/7425028/2810d08c-6db6-425e-8363-68db50f26a03) 11 | 12 | The original codeschool for 256-color terminals was created by @Astonj 13 | (http://astonj.com) based on the editor used at http://codeschool.com. While I 14 | enjoyed the theme, I felt it could use a number of improvements and started 15 | implementing them for private use. At some point, my version started to differ 16 | from the original and I decided to release it for public use, with the name 17 | "termschool" (think "Codeschool for terminals.") 18 | 19 | Keep in mind that this theme is a constant work in progress. I use editors all 20 | day and once in a while I'll stumble on some color combination that I don't 21 | quite like. When that happens, I'll update the theme and push a change. Fork 22 | this repository if you prefer a theme that will never change, or keep pulling 23 | newer versions if you like my fixes and improvements. 24 | 25 | # Installation 26 | 27 | ## Using Vundle 28 | 29 | If you're using Vundle, just add the following to your `~/.vimrc` file: 30 | 31 | ```VimL 32 | Plugin 'marcopaganini/termschool-vim-theme' 33 | colorscheme termschool 34 | ``` 35 | 36 | While still inside vim, type: `:PluginInstall`. This should install 37 | termschool automatically. Restart vim and the new theme should be the default. 38 | Once in a while, type `:PluginUpdate` to fetch the newest version of the 39 | plugin from github. 40 | 41 | ## Manual installation 42 | 43 | Manual installation is very simple: Download the `termschool.vim` file and copy 44 | it into your `~/.vim/colors` directory. Edit your `~/.vimrc` file and add: 45 | 46 | ```VimL 47 | colorscheme termschool 48 | ``` 49 | Restart vim and everything should work. 50 | 51 | A better (but slightly more complicated) option is to git clone this repository 52 | somewhere in your disk and create a symlink from the `termschool.vim` file 53 | inside your working repository to `~/.vim/colors`. 54 | 55 | ## Caveats 56 | 57 | Please note that this theme *requires* a 256-color capable terminal. Most 58 | popular terminals are 256-color capable these days, but if things look odd, 59 | your terminal might not have this capability. 60 | 61 | If you know your terminal is 256-color capable and things still look 62 | ugly/weird, try adding the following to your `~/.vimrc` file right before the 63 | `colorscheme termschool` line: 64 | 65 | ```VimL 66 | set t_Co=256 67 | ``` 68 | 69 | This will force vim to use 256 colors. 70 | 71 | Note that the theme has been tuned for 256-color terminals (I just can't match 72 | the productivity of screen + vim on gvim) but should also work fine for GUI 73 | environments. 74 | 75 | Feel free to send comments with ideas, suggestions and push requests. 76 | 77 | ## FZF Compatible colors 78 | 79 | If you use [FZF](https://github.com/junegunn/fzf), you can get termschool compatible 80 | colors by adding the following to your `~/.bashrc`: 81 | 82 | ```sh 83 | export FZF_DEFAULT_OPTS="${FZF_DEFAULT_OPTS}"' 84 | --color="fg:231,bg:234,bg+:23,hl:113,gutter:234" 85 | --color="query:255,prompt:178,pointer:178,marker:44" 86 | ' 87 | ``` 88 | 89 | If your terminal supports truecolor, you can make the FZF colors match the GUI 90 | colors more closely: 91 | 92 | ```sh 93 | export FZF_DEFAULT_OPTS="${FZF_DEFAULT_OPTS}"' 94 | --color="fg:#f0f0f0,bg:#252c31,bg+:#005f5f,hl:#87d75f,gutter:#252c31" 95 | --color="query:#ffffff,prompt:#f0f0f0,pointer:#dfaf00,marker:#00d7d7" 96 | ' 97 | ``` 98 | 99 | ## Related Links 100 | 101 | You may also want to check the 102 | [Mojave](https://github.com/marcopaganini/mojave-vim-theme) vim theme, a dark 103 | color theme based (mostly) on pastel colors that is well suited to long editing 104 | sessions. 105 | -------------------------------------------------------------------------------- /colors/termschool.vim: -------------------------------------------------------------------------------- 1 | " Termschool - A 256 color theme for vim 2 | " 3 | " The original codeschool theme was converted by @AstonJ (http://astonj) to 4 | " work with 256 color terminals. I liked the original theme, but didn't 5 | " completely like the conversion, so I started to tweak it. The resulting 6 | " theme is now called "termschool" and was tweaked to be a medium contrast 7 | " theme with a gray/dark background. 8 | " 9 | " The theme is aimed at people using 256 color terminals, but should display 10 | " correctly in gvim (GUI Vim) as well. 11 | " 12 | " Feedback, corrections and ideas: 13 | " 14 | " Please note that this theme is a work in progress. Once in a while, I find 15 | " something I don't like and change it. If you prefer it to be static, clone 16 | " my github repository and keep a separate copy. Push requests are welcome. 17 | " 18 | " Source: http://github.com/marcopaganini/termschool-vim-theme 19 | 20 | set background=dark 21 | highlight clear 22 | highlight clear CursorLineNr 23 | 24 | if exists("syntax_on") 25 | syntax reset 26 | endif 27 | 28 | let g:colors_name = "termschool" 29 | 30 | hi Conceal ctermfg=60 ctermbg=NONE cterm=NONE guifg=#5f5f87 guibg=NONE gui=NONE 31 | hi Cursor ctermfg=16 ctermbg=145 cterm=NONE guifg=#182227 guibg=#9ea7a6 gui=NONE 32 | hi Visual ctermfg=NONE ctermbg=59 cterm=NONE guifg=NONE guibg=#3f4b52 gui=NONE 33 | hi CursorLine ctermfg=NONE ctermbg=236 cterm=NONE guifg=NONE guibg=#2e373b gui=NONE 34 | hi CursorColumn ctermfg=NONE ctermbg=236 cterm=NONE guifg=NONE guibg=#2e373b gui=NONE 35 | hi ColorColumn ctermfg=NONE ctermbg=236 cterm=NONE guifg=NONE guibg=#2e373b gui=NONE 36 | hi LineNr ctermfg=102 ctermbg=NONE cterm=NONE guifg=#84898c guibg=#2a343a gui=NONE 37 | hi VertSplit ctermfg=59 ctermbg=235 cterm=NONE guifg=#5f5f5f guibg=#252c31 gui=NONE 38 | hi MatchParen ctermfg=NONE ctermbg=245 cterm=NONE guifg=NONE guibg=#9a9a9a gui=NONE 39 | hi StatusLine ctermfg=231 ctermbg=59 cterm=bold guifg=#f0f0f0 guibg=#575e61 gui=bold 40 | hi StatusLineNC ctermfg=231 ctermbg=59 cterm=NONE guifg=#f0f0f0 guibg=#575e61 gui=NONE 41 | hi Pmenu ctermfg=NONE ctermbg=59 cterm=NONE guifg=NONE guibg=#5f5f5f gui=NONE 42 | hi PmenuSel ctermfg=231 ctermbg=68 cterm=NONE guifg=#f0f0f0 guibg=#3c98d9 gui=NONE 43 | hi IncSearch ctermfg=15 ctermbg=107 cterm=NONE guifg=#f0f0f0 guibg=#8bb664 gui=NONE 44 | hi Search ctermfg=3 ctermbg=239 cterm=NONE guifg=#000000 guibg=#00d75f gui=NONE 45 | hi Directory ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 46 | hi Folded ctermfg=247 ctermbg=16 cterm=NONE guifg=#9a9a9a guibg=#182227 gui=NONE 47 | hi Normal ctermfg=231 ctermbg=234 cterm=NONE guifg=#f0f0f0 guibg=#252c31 gui=NONE 48 | hi Boolean ctermfg=68 ctermbg=NONE cterm=bold guifg=#3c98d9 guibg=NONE gui=bold 49 | hi Character ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 50 | hi Comment ctermfg=247 ctermbg=NONE cterm=italic guifg=#9a9a9a guibg=NONE gui=italic 51 | hi Conditional ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 52 | hi Constant ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 53 | hi Define ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 54 | hi DiffAdd ctermfg=231 ctermbg=64 cterm=NONE guifg=#f0f0f0 guibg=#5f8700 gui=NONE 55 | hi DiffDelete ctermfg=88 ctermbg=167 cterm=NONE guifg=#870000 guibg=#d75f5f gui=NONE 56 | hi DiffChange ctermfg=231 ctermbg=68 cterm=NONE guifg=#f0f0f0 guibg=#5f87d7 gui=NONE 57 | hi DiffText ctermfg=231 ctermbg=61 cterm=bold guifg=#f0f0f0 guibg=#5f5faf gui=bold 58 | hi ErrorMsg ctermfg=131 ctermbg=231 cterm=reverse guifg=#af5f5f guibg=#f0f0f0 gui=reverse 59 | hi WarningMsg ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 60 | hi Float ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 61 | hi Function ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE 62 | hi Identifier ctermfg=113 ctermbg=NONE cterm=NONE guifg=#99cf50 guibg=NONE gui=NONE 63 | hi Keyword ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 64 | hi Label ctermfg=107 ctermbg=NONE cterm=NONE guifg=#8bb664 guibg=NONE gui=NONE 65 | hi NonText ctermfg=243 ctermbg=234 cterm=NONE guifg=#767676 guibg=#232c31 gui=NONE 66 | hi Number ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 67 | hi Operator ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 68 | hi PreProc ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 69 | hi Special ctermfg=231 ctermbg=NONE cterm=NONE guifg=#f0f0f0 guibg=NONE gui=NONE 70 | hi SpecialKey ctermfg=60 ctermbg=NONE cterm=NONE guifg=#5f5f87 guibg=NONE gui=NONE 71 | hi Statement ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 72 | hi StorageClass ctermfg=113 ctermbg=NONE cterm=NONE guifg=#99cf50 guibg=NONE gui=NONE 73 | hi String ctermfg=107 ctermbg=NONE cterm=NONE guifg=#8bb664 guibg=NONE gui=NONE 74 | hi Tag ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE 75 | hi Title ctermfg=231 ctermbg=NONE cterm=NONE guifg=#f0f0f0 guibg=NONE gui=NONE 76 | hi Todo ctermfg=247 ctermbg=NONE cterm=inverse,bold,italic guifg=#9a9a9a guibg=NONE gui=inverse,bold,italic 77 | hi Type ctermfg=153 ctermbg=NONE cterm=NONE guifg=#b5d8f6 guibg=NONE gui=NONE 78 | hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline guifg=NONE guibg=NONE gui=underline 79 | hi rubyClass ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 80 | hi rubyFunction ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE 81 | hi rubyInterpolationDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 82 | hi rubySymbol ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 83 | hi rubyConstant ctermfg=146 ctermbg=NONE cterm=NONE guifg=#bfabcb guibg=NONE gui=NONE 84 | hi rubyStringDelimiter ctermfg=107 ctermbg=NONE cterm=NONE guifg=#8bb664 guibg=NONE gui=NONE 85 | hi rubyBlockParameter ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE 86 | hi rubyInstanceVariable ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE 87 | hi rubyInclude ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 88 | hi rubyGlobalVariable ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE 89 | hi rubyRegexp ctermfg=179 ctermbg=NONE cterm=NONE guifg=#e9c062 guibg=NONE gui=NONE 90 | hi rubyRegexpDelimiter ctermfg=179 ctermbg=NONE cterm=NONE guifg=#e9c062 guibg=NONE gui=NONE 91 | hi rubyEscape ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 92 | hi rubyControl ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 93 | hi rubyClassVariable ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE 94 | hi rubyOperator ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 95 | hi rubyException ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE 96 | hi rubyPseudoVariable ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE 97 | hi rubyRailsUserClass ctermfg=146 ctermbg=NONE cterm=NONE guifg=#bfabcb guibg=NONE gui=NONE 98 | hi rubyRailsARAssociationMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE 99 | hi rubyRailsARMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE 100 | hi rubyRailsRenderMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE 101 | hi rubyRailsMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE 102 | hi erubyDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 103 | hi erubyComment ctermfg=247 ctermbg=NONE cterm=italic guifg=#9a9a9a guibg=NONE gui=italic 104 | hi erubyRailsMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE 105 | hi htmlTag ctermfg=111 ctermbg=NONE cterm=NONE guifg=#89bdff guibg=NONE gui=NONE 106 | hi htmlEndTag ctermfg=111 ctermbg=NONE cterm=NONE guifg=#89bdff guibg=NONE gui=NONE 107 | hi htmlTagName ctermfg=111 ctermbg=NONE cterm=NONE guifg=#89bdff guibg=NONE gui=NONE 108 | hi htmlArg ctermfg=111 ctermbg=NONE cterm=NONE guifg=#89bdff guibg=NONE gui=NONE 109 | hi htmlSpecialChar ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 110 | hi javaScriptFunction ctermfg=113 ctermbg=NONE cterm=NONE guifg=#99cf50 guibg=NONE gui=NONE 111 | hi javaScriptRailsFunction ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE 112 | hi javaScriptBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 113 | hi yamlKey ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE 114 | hi yamlAnchor ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE 115 | hi yamlAlias ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE 116 | hi yamlDocumentHeader ctermfg=107 ctermbg=NONE cterm=NONE guifg=#8bb664 guibg=NONE gui=NONE 117 | hi cssURL ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE 118 | hi cssFunctionName ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE 119 | hi cssColor ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 120 | hi cssPseudoClassId ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE 121 | hi cssClassName ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE 122 | hi cssValueLength ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE 123 | hi cssCommonAttr ctermfg=151 ctermbg=NONE cterm=NONE guifg=#a7cfa3 guibg=NONE gui=NONE 124 | hi cssBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 125 | hi SpellBad ctermfg=0 ctermbg=224 guifg=#000000 guibg=#ffdfdf 126 | hi SpellCap ctermfg=0 ctermbg=81 guifg=#000000 guibg=#5fd7ff 127 | hi SpellRare ctermfg=0 ctermbg=225 guifg=#000000 guibg=#ffdfff 128 | hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 129 | hi TabLineSel ctermfg=NONE ctermbg=23 cterm=bold guifg=NONE guibg=#005f5f gui=bold 130 | hi TabLine ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE 131 | hi SignColumn ctermfg=0 ctermbg=240 guifg=#000000 guibg=#585858 132 | hi FoldColumn ctermfg=102 ctermbg=NONE cterm=NONE guifg=#84898c guibg=#2a343a gui=NONE 133 | hi WildMenu ctermfg=NONE ctermbg=23 cterm=bold guifg=NONE guibg=#005f5f gui=bold 134 | 135 | " Git 136 | hi diffAdded ctermfg=113 ctermbg=NONE cterm=NONE guifg=#87d75f guibg=NONE gui=NONE 137 | hi diffRemoved ctermfg=167 ctermbg=NONE cterm=NONE guifg=#d75f5f guibg=NONE gui=NONE 138 | hi diffChanged ctermfg=68 ctermbg=NONE cterm=NONE guifg=#5f87d7 guibg=NONE gui=NONE 139 | 140 | " C highlighting 141 | hi! link cConditional Conditional 142 | hi! link cRepeat Conditional 143 | hi cTodo ctermfg=113 ctermbg=NONE cterm=bold guifg=#87d75f guibg=NONE gui=bold 144 | hi cType ctermfg=231 ctermbg=234 cterm=NONE guifg=#f0f0f0 guibg=NONE gui=NONE 145 | hi cConstant ctermfg=231 ctermbg=234 cterm=NONE guifg=#f0f0f0 guibg=NONE gui=NONE 146 | 147 | " Markdown specific colors 148 | hi markdownCode ctermfg=74 ctermbg=NONE guifg=#5fafd7 guibg=NONE gui=NONE 149 | hi markdownH1 ctermfg=178 ctermbg=NONE cterm=bold guifg=#dfaf00 guibg=NONE gui=bold 150 | hi markdownH2 ctermfg=44 ctermbg=NONE cterm=bold guifg=#00d7d7 guibg=NONE gui=bold 151 | hi markdownH3 ctermfg=113 ctermbg=NONE cterm=bold guifg=#87d75f guibg=NONE gui=bold 152 | hi markdownH4 ctermfg=172 ctermbg=NONE cterm=bold guifg=#d75f00 guibg=NONE gui=bold 153 | hi markdownH5 ctermfg=172 ctermbg=NONE cterm=bold guifg=#d75f00 guibg=NONE gui=bold 154 | hi markdownH6 ctermfg=172 ctermbg=NONE cterm=bold guifg=#d75f00 guibg=NONE gui=bold 155 | hi markdownListMarker ctermfg=75 ctermbg=NONE cterm=bold guifg=#5fafff guibg=NONE gui=bold 156 | hi markdownOrderedListMarker ctermfg=75 ctermbg=NONE cterm=bold guifg=#5fafff guibg=NONE gui=bold 157 | hi markdownUrl ctermfg=45 ctermbg=NONE guifg=#00d7ff guibg=NONE 158 | 159 | hi markdownItalic cterm=italic gui=italic 160 | hi markdownBold cterm=bold gui=bold 161 | hi markdownBoldItalic cterm=bold,italic gui=bold,italic 162 | --------------------------------------------------------------------------------