Is there a way to get a list of all installed color schemes in Vim? That would make very easy to select one without looking at the .vim
directory.

- 7,835
- 7
- 61
- 104

- 23,338
- 31
- 90
- 128
11 Answers
Type
:colorscheme
then Space followed by TAB.
or as Peter said,
:colorscheme
then Space followed by CTRLd
The short version of the command is :colo
so you can use it in the two previous commands, instead of using the "long form".

- 40,509
- 10
- 68
- 97
-
3is actually better if you have lots of scheme installed. – Xavier T. Sep 07 '11 at 14:03
-
2Or if you've got `:set wildmenu` you sorta get the same effect as `
` with hitting tab. – Conrad.Dean Nov 10 '12 at 05:14 -
1Worked for me after I added space after `:colorscheme`. Maybe it's something trivial, however, it took me time to reveal. – jutky Feb 04 '13 at 20:16
-
@jutky : you are right, otherwise it only complete the command name. I will update the answer accordingly. – Xavier T. Feb 05 '13 at 08:40
-
it's also a bit faster to use `:colo` instead of `:colorscheme` – Miles Smith May 06 '16 at 22:17
-
7`:colo` isn't really the *short-form*. It's just completed because there are no conflicting commands. If you made a command like "colobanana", then `:colo` would have more than one "long form", so it wouldn't work as suggested. – dylnmc Dec 01 '16 at 18:39
-
Thus, all boils down to: There is no way to get a list if the default colour schemes in vim and the only way to be able to see which ones are there is by using tab expansion and painstakingly go through all of them and eventually create a list yourself. ;) – runlevel0 Feb 22 '18 at 12:37
-
you can use :r! ls /usr/share/vim/vimNN/colors this will output a list of all colorschemes directly to the file opened in vim...from there you can set your colorscheme and delete the list after ( consider using something like ... 18dd command in vim to delete them all in one go... ) – Sean Davey Jun 06 '19 at 13:31
-
It would be nice if there was a gallery of all the built-in schemes. – Sridhar Sarnobat Aug 27 '21 at 00:41
-
1The website vimcolors does not work anymore. – Sven R. Kunze Sep 15 '22 at 20:04
Just for convenient reference. Here is a list of the default set of colour schemes for Vim 7.4:
blue.vim
darkblue.vim,
delek.vim
desert.vim
elflord.vim
evening.vim
industry.vim
koehler.vim
morning.vim
murphy.vim
pablo.vim
peachpuff.vim
ron.vim
shine.vim
slate.vim
torte.vim
zellner.vim

- 13,167
- 27
- 115
- 225

- 2,715
- 2
- 24
- 31
-
10Very helpful list. For those with older eyes, and who are even busier, here are those I found most readable : delek, koehler, slate & zellner. I selected zellner. – theRiley May 30 '19 at 16:11
-
1Good choices, but maybe a bit too much of red color for me. I prefer desert, which uses turquoise/light blue. (In vim, type :colors desert) – HAltos Jul 15 '19 at 16:52
-
2I've always used *torte* which to me seems to have good contrast and doesn't try to be a "style", and doesn't "waste contrast bandwidth" by making the colours similar. – NeilG Sep 30 '19 at 22:48
-
To get this list for your version of vim, execute from within vim `:! ls $VIMRUNTIME/colors` – AliA Jun 05 '23 at 16:49
You can see the list of color schemes under /usr/share/vim/vimNN/colors
(with NN
being the version, e.g. vim74
for vim 7.4).
This is explained here.
On the linux servers I use via ssh, TAB prints ^I
and CTRLd prints ^D
.

- 6,700
- 7
- 35
- 35
-
11That misses the color schemes installed by the user (under the home directory). – Cristian Ciupitu Oct 05 '13 at 12:13
-
5The path to the color tables, exactly what I was looking for thanks! – Corepuncher Dec 12 '13 at 05:06
-
1Note that the `NN` in `vimNN` will correspond to the version of vim, e.g. `vim74` for vim 7.4. Just wanted to point this out because I'm slow and it made me do a double take when I went to look ;) – Adam P Nov 29 '16 at 03:39
-
1
-
If you don't have the folder `/usr/share/vim/` you may have a minimal version of vim installed. In my case (a RHEL 8 vm) it came with `vim-minimal` only. I installed `vim-enhanced` which provided the color schemes. – Bryan Roach Jul 22 '22 at 21:55
-
If you are willing to install a plugin, I recommend https://github.com/vim-scripts/CycleColor.
to cycle through all installed colorschemes. Nice way to easily choose a colorscheme.

- 766
- 10
- 11
Looking at my system's menu.vim (look for 'Color Scheme submenu') and @chappar's answer, I came up with the following function:
" Returns the list of available color schemes
function! GetColorSchemes()
return uniq(sort(map(
\ globpath(&runtimepath, "colors/*.vim", 0, 1),
\ 'fnamemodify(v:val, ":t:r")'
\)))
endfunction
It does the following:
- Gets the list of available color scheme scripts under all runtime paths (globpath, runtimepath)
- Maps the script paths to their base names (strips parent dirs and extension) (map, fnamemodify)
- Sorts and removes duplicates (uniq, sort)
Then to use the function I do something like this:
let s:schemes = GetColorSchemes()
if index(s:schemes, 'solarized') >= 0
colorscheme solarized
elseif index(s:schemes, 'darkblue') >= 0
colorscheme darkblue
endif
Which means I prefer the 'solarized' and then the 'darkblue' schemes; if none of them is available, do nothing.

- 463
- 5
- 10
Here is a small function I wrote to try all the colorschemes in $VIMRUNTIME/colors directory.
Add the below function to your vimrc, then open your source file and call the function from command.
function! DisplayColorSchemes()
let currDir = getcwd()
exec "cd $VIMRUNTIME/colors"
for myCol in split(glob("*"), '\n')
if myCol =~ '\.vim'
let mycol = substitute(myCol, '\.vim', '', '')
exec "colorscheme " . mycol
exec "redraw!"
echo "colorscheme = ". myCol
sleep 2
endif
endfor
exec "cd " . currDir
endfunction

- 7,275
- 12
- 44
- 57
If you have your vim compiled with +menu
, you can follow menus with the :help
of console-menu
. From there, you can navigate to Edit.Color\ Scheme
to get the same list as with in gvim
.
Other method is to use a cool script ScrollColors that previews the colorschemes while you scroll the schemes with j/k
.

- 17,047
- 9
- 64
- 80
i know i am late for this answer but the correct answer seems to be
See :help getcompletion():
:echo getcompletion('', 'color')
which you can assign to a variable:
:let foo = getcompletion('', 'color')
or use in an expression register:
:put=getcompletion('', 'color')
This is not my answer, this solution is provided by u/romainl in this post on reddit.

- 855
- 3
- 12
- 29
A great solution, and my thanks to your contributors. For years I've been struggling with a totally crappy color scheme -- using SSH under Windows Vista to a Redhat system, terminal type xterm. The editor would come up with a black background and weird colors for various keywords. Worse -- that weird color scheme sticks in the xterm terminal after leaving Vim.
Really confusing.
Also, Backspace failed during an insert mode, which was nasty to remember -- though Delete did the same thing.
The cure --
In the SSH monitor, select Edit/Settings.
a. Choose Profile Settings/Colors
b. check 'enable ANSI colors'
c. The standard Text colors are probably OK
Add these lines to $HOME/.vimrc:
colorscheme default
if &term == "xterm"
set t_kb=^H
fixdel
endif
NOTE: the ^H MUST be typed as ctrl-V ctrl-H. Seems peculiar, but this seems to work.

- 281
- 3
- 2
Try
set wildmenu
set wildmode=list:full
set wildcharm=<C-z>
let mapleader=','
nnoremap <leader>c :colorscheme <C-z><S-Tab>
in your ~/.vimrc
.
The first two lines make possible matches appear as lists. You can use either or both.
The fourth line makes leader ,
instead of the default \
.
The last line allows you to simply type ,c
to get a list and a prompt to change your colorscheme.
The third line effectively allows for Tab
s to appear in key maps.
(Of course, all of these strategies I've learned from the internet, and mostly SO, very recently.)

- 2,026
- 20
- 18
-
If I'm reading this right, `
` (and I may not be) will remap the default ctrl-z to background your editor, which is something I do *all* the time. So beware of binding this keymap if you don't know what you're doing. – Jim Jan 27 '22 at 05:54
Another simpler way is while you are editing a file - tabe ~/.vim/colors/
ENTER
Will open all the themes in a new tab within vim window.
You may come back to the file you were editing using - CTRL + W + W
ENTER
Note: Above will work ONLY IF YOU HAVE a .vim/colors
directory within your home directory for current $USER
(I have 70+ themes)
[user@host ~]$ ls -l ~/.vim/colors | wc -l
72

- 1,393
- 2
- 19
- 29