# palenight.vim: a Material Pale Night colour scheme for Vim and Neovim

> palenight.vim is a dark colour scheme for Vim and Neovim built on Material Pale Night palette, with matching lightline and airline themes, an italics toggle and per-colour overrides. It is a small, self-contained plugin for people who want one specific look rather than a theme system.

**drewtempelmeyer/palenight.vim** — Soothing color scheme for your favorite [best] text editor

- Repository: https://github.com/drewtempelmeyer/palenight.vim
- Stars: 666 · Forks: 80
- Language: Vim Script
- License: MIT
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/drewtempelmeyer-palenight-vim

## A colourscheme, not a theme system

palenight.vim is a dark colour scheme for Vim and Neovim based off Material Pale Night colours, and the README credits the onedark.vim colour scheme as the basis for much of the work. The project description is characteristically brief: a soothing colour scheme for your favorite text editor.

It is worth being clear about the category. This is a colourscheme, not a theme engine. It defines syntax highlighting groups and the appearance of the interface, and it stops there. The repository layout shows exactly that: a LICENSE, a README, an autoload directory, a colors directory and an images directory. The colors directory holds the scheme file itself, and the autoload directory holds the file that implements the colour override mechanism.

There is no configuration format, no plugin API, no tree-sitter integration and no language-specific configuration in the documentation. What you get is a palette applied to syntax groups.

That is a legitimate thing to want, and for a lot of people it is exactly the right amount. A full theme framework gives you control over everything and a maintenance burden to match. A colourscheme gives you a specific look in one file, and the README treats it that way, with the installation and usage sections limited to installing the plugin, switching to it, and a handful of options.

The audience is a Vim or Neovim user on a dark background who has seen the Pale Night palette in an editor and wants it in Vim. The topic list names a material theme and palenight alongside the usual vim and vimconfig terms, along with magic.

## Two installation paths, one colorscheme command

The README documents both a Neovim with Lua path and a Vim with Vimscript path, and the difference is only in how the plugin gets installed.

For Neovim with lazy.nvim, the plugin spec is a table with the repository name, lazy set to false, priority at 1000, and a config function that sets termguicolors, sets background to dark, and loads the colourscheme:

```lua
{
  "drewtempelmeyer/palenight.vim",
  lazy = false,
  priority = 1000,
  config = function()
    vim.opt.termguicolors = true
    vim.opt.background = "dark"
    vim.cmd.colorscheme("palenight")
  end,
}
```

The priority value matters more than it looks. In lazy.nvim, plugins with a higher priority are loaded earlier, so setting priority to 1000 helps ensure the colourscheme is applied promptly at startup.

For Vim with vim-plug, the README asks you to add a Plug line to your vimrc and then run PlugInstall from Vim:

```vim
Plug 'drewtempelmeyer/palenight.vim'
```

```vim
:PlugInstall
```

The usage in Vim is then the Vimscript equivalent of the Neovim one, with set termguicolors, set background=dark and colorscheme palenight.

One thing the README does not document is how to install with a different plugin manager, and it does not mention a Vim 8 or Neovim native package path. The lazy.nvim and vim-plug routes are the ones it covers, and if you use something else, the fallback is to clone the repository into a directory on your runtimepath, which is standard Vim practice but is not spelled out here.

## Status line themes are separate opt-ins, not automatic

A detail that catches people out: applying the colourscheme does not restyle the status line. The README documents the two popular status line plugins as separate configuration steps, one for lightline and one for airline, in both the Lua and the Vimscript variants.

For lightline in Neovim, the line is a single assignment setting the lightline table with a colorscheme key. For airline, the line sets airline_theme to the palette name:

```lua
vim.g.lightline = { colorscheme = "palenight" }
```

```lua
vim.g.airline_theme = "palenight"
```

The Vimscript equivalents use let g:lightline with a dictionary containing a colorscheme key, and let g:airline_theme set to the palette name.

Two points come out of this. First, the status line needs a theme that exists for it, and a colourscheme that has no matching status line theme leaves a status line in whatever colours the default provides, which is the usual first complaint about a half-applied dark theme. Second, the naming convention is that the scheme name is palenight, and both plugins are told to look for a theme by that name. If you rename the scheme in your config, the status line will not follow it.

For anyone using neither plugin, the status line is the standard Vim one and takes its colours from the scheme, which is where the colours directory does its work.

## True colour and italics are the two settings worth reading about

The README recommends enabling true colors, saying that current Vim and Neovim versions support this with termguicolors. In Lua that is setting the termguicolors option to true, and in Vimscript it is the set termguicolors command.

This is more than a preference. A modern colour scheme defines colours as 24-bit RGB values, and a terminal that cannot pass them will approximate, sometimes badly. If the scheme looks wrong rather than merely plain, a terminal without true colour support is the first thing to check, and the termguicolors setting is the second.

It also connects to the override mechanism, which is the part with a real constraint. The README says overriding palenight's colours is supported by setting the g:palenight_color_overrides variable, that palenight.vim in the autoload directory lists the colours that may be overridden, and that you must provide gui, cterm and cterm16 values for each. The example overrides the background to pure black:

```lua
vim.g.palenight_color_overrides = {
  black = { gui = "#000000", cterm = "0", cterm16 = "0" },
}
```

Three values per colour, not one. The gui value is the RGB value for the graphical interface, and the cterm and cterm16 values are the 256-colour and 16-colour terminal equivalents. That is why an override that omits cterm16 fails on a 16-colour terminal, and it is a deliberate design rather than laziness: the scheme wants to remain usable in a terminal with a small palette, so it refuses to let you leave those values unset.

The second setting is italics. The README sets the g:palenight_terminal_italics variable to 1 to turn them on, and explains that italics in a terminal are limited, with the honest note that italics will do what they can. The argument for them is that they are a good way to improve the appearance of code, and the argument against is that many terminals render them poorly, so it is an opt-in setting rather than an assumed one.

## Maintenance: a colourscheme with a June push and no releases

The facts about the maintenance state are sparse, so it is better to state them plainly than to characterise them.

The repository is not archived. The last push was on 2026-06-20. The project has no GitHub releases at all, which is normal for a Vim plugin, since the convention there is for users to install from the master branch through a plugin manager rather than from a tagged artefact.

The licence is MIT, with the LICENSE file at the repository root. That is a permissive licence with no obligation on downstream users beyond keeping the notice, and for a colourscheme it means you can fork it, adapt the palette, and ship that as long as the notice is kept.

The README points to a contributors page, so the project has had more than one author, but the documentation is one page and there is no changelog, no issue tracker policy, no compatibility matrix and no statement of which Vim and Neovim versions are supported. A colour scheme is a small thing, and the absence of that apparatus is not unusual, but it does mean there is no signal about how a pull request would be handled or when a Neovim release would break something.

The practical read is that this is a settled, small plugin rather than one under active development. The last push on 2026-06-20 is the concrete fact, and the absence of releases means the master branch is the artefact, so pinning to a commit is the only way to freeze a known-good version for a machine you manage.

## Where palenight.vim is the wrong choice

The first wrong-tool case is a terminal without true colour support. The scheme is defined in 24-bit RGB, the README recommends termguicolors, and the override mechanism requires you to supply cterm and cterm16 values alongside the gui value for every colour you change. In a 16-colour terminal, the result is an approximation of an approximation, and a scheme designed for a modern terminal is the wrong artefact.

The second is a user who wants every syntax group to be exactly right for their languages. This scheme defines a general set of groups and a palette, and the README documents no language-specific tuning options. If your work is in a language where the default highlighting of a type versus a function matters to you, or where a particular plugin defines its own highlight groups, you will be editing the colour file yourself. The colour override mechanism only lets you change colours, not remap groups.

The third is a team standardising on a maintained theme. Vim themes are not a scarce resource, and several have issue trackers, release notes and a stated support matrix. If you are shipping a dotfiles repository to a group of people, a scheme with a visible maintenance history and a way to report a broken highlight is worth more than a specific palette.

The fourth is a light background user. The scheme is dark, the usage instructions set background to dark in both editors, and the README documents no light variant. The palette name is Pale Night, and there is no day counterpart here.

The fifth is a Neovim user on a modern status line that needs its own theme. The two status line plugins covered are lightline and airline. Other popular status lines, including the ones built into Neovim itself, need their own integration, and the README does not describe it.

## Conclusion

palenight.vim fits a Vim or Neovim user who wants the Pale Night palette applied consistently, including the status line, and who is happy to accept a scheme that inherits another scheme's structure. It is the wrong choice for a user who needs every syntax group refined, for a terminal that cannot do true colour, and for a team that wants a maintained theme with issue responses. Before adopting it, load it in a scratch configuration and check the syntax groups your languages rely on, and set termguicolors first, since the override mechanism requires gui, cterm and cterm16 values for every colour you change.

## FAQ

### How do I install palenight.vim in Neovim?

The README shows a lazy.nvim spec for drewtempelmeyer/palenight.vim with lazy set to false, priority 1000, and a config function that enables termguicolors, sets background to dark and loads the palenight colourscheme.

### How do I change the colours in palenight.vim?

Set the g:palenight_color_overrides variable, and provide gui, cterm and cterm16 values for each colour you override, with the list of overridable colours in autoload/palenight.vim.

### Does palenight.vim include a status line theme?

The colourscheme does not apply the status line automatically, and the README documents separate settings for lightline and airline in both the Lua and the Vimscript configurations.

### How do I enable italics in palenight.vim?

Set the g:palenight_terminal_italics variable to 1, either as vim.g.palenight_terminal_italics in Lua or let g:palenight_terminal_italics in Vimscript.

## Sources

- [drewtempelmeyer/palenight.vim on GitHub](https://github.com/drewtempelmeyer/palenight.vim)
- [Issues](https://github.com/drewtempelmeyer/palenight.vim/issues)
- [License: MIT](https://github.com/drewtempelmeyer/palenight.vim/blob/master/LICENSE)
- [README](https://github.com/drewtempelmeyer/palenight.vim/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/drewtempelmeyer-palenight-vim
