Gotham, a very dark Vim colorscheme that has to fight your terminal emulator
Code never sleeps in Gotham City. 🌃
At a glance
- What is it?
- Gotham is a very dark Vim colorscheme that works in GUI Vim and in a terminal, and it is built around a fixed palette of eight base colours and eight accents. The interesting part is the terminal problem: a dark scheme only looks right if the terminal's own background matches, so the project ships a companion repository of terminal configurations and a 256 colour variant for when you cannot control the terminal.
- Who is it for?
- Adopt Gotham if you want a low glare editing theme whose palette you can predict and whose colours you can match to a terminal background, and skip it if you need a theme with a wide, tested colour range, since the palette here is sixteen colours and the project says the 256 colour version looks rougher.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 103 days ago.
- What is it written in?
- Mainly Vim Script, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A very dark scheme, and the constraint that creates
Gotham is described as a very dark Vim colorscheme, and it works on GUI vim, in MacVim or gVim, and on terminal vim. The design idea is stated in the epigraph the README opens with, that it is the colorscheme you set that defines us, which is a joke about identity but also an accurate description of how a colorscheme dominates a screen. A very dark palette is a deliberate choice rather than a lack of colour, and it comes with the usual consequence: on a light terminal background the dark half of the scheme has no contrast, so the whole scheme degrades. That is the problem the rest of the project is organised around. The primary language recorded for the repository is Vim Script, the licence is MIT, the last push was on 2026-07-12, and the repository is not archived.
colorscheme gothamSixteen colours, and why the palette is fixed
The colour palette section lists the scheme's sixteen colours as a table, and reading it explains a lot about the constraints. The eight base colours run from a near black at #0c1014 through a series of very dark blues, ending in a pale cyan at #d3ebe9, and the eight accents are red, orange, yellow, magenta, violet, blue, cyan and green. The base colours are so close to black that on anything but a matching background they are nearly unreadable, which is the point of the dark theme and also its fragility. The palette being enumerated in the documentation rather than left implicit is useful, because it means a user whose terminal cannot be reconfigured can at least know which values to aim for, and it gives a terminal configuration something concrete to target.
| Base 0 | `#0c1014` | Red | `#c23127` |
| Base 7 | `#d3ebe9` | Green | `#2aa889` |The terminal problem, and the 256 colour escape hatch
For terminal vim, the documentation says you should consider setting Gotham as the colorscheme of your terminal emulator too, and the reason is that a terminal draws its own background and foreground colours, and vim's theme only overrides what vim itself paints. If they disagree, the text vim does not set keeps the terminal's colour. There is a second route for people who cannot reconfigure their terminal, which is a 256 colour version of the theme, enabled by replacing gotham with gotham256 in the vimrc. The documentation explains the trade precisely: using gotham256, given that your terminal supports 256 colours, ensures that the colours in vim are fixed and do not depend on the colorscheme of the terminal emulator. The project also asks you to use the 256 colour version only if you know what you are doing, since it looks rougher than the regular version. That is the honest framing, a faithful reproduction that needs the whole environment or an approximation that does not.
colorscheme gotham256Status line integration, and the one that is not maintained
Gotham supports two status line plugins out of the box, and the details are specific enough to be useful. It works with vim-airline, and when the Gotham colorscheme is active, airline should be able to pick it up on its own, though the AirlineTheme command can be used manually for either the regular or the 256 colour version. By default Gotham emphasises the use of insert mode with a distinctive bright yellow in the airline mode segment, and a single global variable turns that off for a darker, less emphasised colour. The second plugin is lightline.vim, enabled by pointing its colorscheme option at gotham or gotham256. There is also an Emacs version of the theme, and the documentation is explicit that the author does not maintain it, which is a fair thing to say about a port you host but do not keep current.
let g:lightline = { 'colorscheme': 'gotham' }
let g:lightline = { 'colorscheme': 'gotham256' }Installing, and the other platforms
The installation section opens with the author explaining that they moved to vim-plug a while ago and never looked back, and then that you can install Gotham with whatever package manager you use. The examples cover the main four, with a plugin declaration for each. If you do not use a plugin manager, the instruction is simply to copy the content of the colors directory to your own colors directory under the home directory. The project goes further than Vim, because a colorscheme is only half of the visual result in a terminal. If you want terminal vim to look as good as GUI vim, you have to install the Gotham colorscheme for your terminal emulator too, and an up-to-date list of supported platforms with installation instructions for each is in the companion repository. That separation, a core theme and a repository of terminal configurations, is the design decision that makes the project work across the many terminal emulators it lists.
" vim-plug
Plug 'whatyouhide/vim-gotham'
" NeoBundle
NeoBundle 'whatyouhide/vim-gotham'
" Vundle
Plugin 'whatyouhide/vim-gotham'
" dein.vim
call dein#add('whatyouhide/vim-gotham')Where it fits, and what to check before you switch
Gotham is a well-specified opinion with a small surface, and the cases where it is the wrong choice are clear. It is a dark scheme, so it is for people who work in a dark room and want their editor not to be the brightest thing on the desk. It is a small palette, so it is not for someone who wants syntax highlighting to distinguish many kinds of token, and the project itself flags the 256 colour version as looking rougher, which is the same tradeoff said more bluntly. It is Vim and terminal first, with an Emacs port that the author does not maintain. The three checks before you switch are practical. Can you set your terminal background to the scheme's base zero, because if you cannot, the 256 colour variant is the only path that will look deliberate. Are you using airline or lightline, since the integration is written for those two specifically. And are you prepared for the fact that the configuration is a set of global variables and a colorscheme command rather than a plugin with options, which is normal for the genre but means your vimrc is where the knobs live.
Editorial conclusion
Adopt Gotham if you want a low glare editing theme whose palette you can predict and whose colours you can match to a terminal background, and skip it if you need a theme with a wide, tested colour range, since the palette here is sixteen colours and the project says the 256 colour version looks rougher. Verify three things before you install it: that you can set your terminal background to the same colour the scheme expects, because otherwise the low contrast areas will be off; whether you want the regular or the 256 colour variant, since the difference is faithfulness to the design against stability across terminals; and that the status line plugin you use is one of the two named ones, because Gotham integrates with airline and lightline specifically rather than with a general mechanism.
Frequently asked questions
What is the Gotham Vim colorscheme?
It is a very dark Vim colorscheme that works on GUI vim, in MacVim or gVim, and on terminal vim. For terminal vim, the project recommends setting Gotham as the colorscheme of the terminal emulator as well, and a separate repository holds the configuration for the many terminal emulators it supports.
What is the difference between gotham and gotham256?
The 256 colour version fixes the colours in vim so they do not depend on the terminal emulator's own colorscheme, given that your terminal supports 256 colours. The regular version is more faithful, and the project asks you to use gotham256 only if you know what you are doing, since it looks rougher than the regular version.
Does Gotham work with status line plugins?
It supports vim-airline out of the box, which should pick up the colorscheme automatically, and you can set it manually with the AirlineTheme command for either version. It also supports lightline.vim by setting its colorscheme option to gotham or gotham256. Insert mode is emphasised with a bright yellow in the airline mode segment unless you set g:gotham_airline_emphasised_insert to 0.
How do I install the Gotham colorscheme?
With whichever plugin manager you use, for example Plug for vim-plug, NeoBundle, Plugin for Vundle or dein#add for dein.vim. Without a plugin manager, copy the content of the colors directory into your own colors directory under the home directory, then set it in your vimrc with the colorscheme command.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/whatyouhide-vim-gotham)Was this useful?