Réponses:
La façon la plus simple est d'utiliser :help c_Ctrl-d
après :colorscheme
.
Ainsi, :colorscheme
Ctrl-dsortira les schémas de couleurs dont vous disposez.
Une autre façon d'afficher la liste est par set wildmenu
. Avec cela, après :colorscheme
+ space
+ tab
, une liste d'achèvement est affichée et également sélectionnable avec la touche fléchée ou Ctrl-N
et Ctrl-P
. Ce n'est pas seulement un travail sur le schéma de couleurs, mais aussi sur d'autres compléments de cmdline. Le comportement est affecté wildmode
et mieux défini sur la valeur par défaut full
.
Si vous souhaitez le faire dans Vimscript, vous pouvez obtenir une liste de schémas de couleurs en utilisant la fonction getcompletion ():
let c = getcompletion('', 'color')
echo c
C'est un peu plus simple que la réponse Vimscript existante, qui analyse le système de fichiers.
Voir :help getcompletion()
pour plus de détails.
Les autres réponses montrent la manière interactive de montrer quels schémas de couleurs sont disponibles, mais personne n'a mentionné un moyen d'obtenir une liste qui peut être utilisée dans vimscript. Ceci est une adaptation de ma réponse à cette question .
Cette solution utilise l' 'runtimepath'
option pour obtenir tous les répertoires de codes de couleurs disponibles, puis récupère une liste des fichiers vimscript dans ces répertoires avec leurs extensions supprimées. Ce n'est peut-être pas le moyen le plus sûr de le faire, les améliorations sont donc les bienvenues:
function! GetColorschemes()
" Get a list of all the runtime directories by taking the value of that
" option and splitting it using a comma as the separator.
let rtps = split(&runtimepath, ",")
" This will be the list of colorschemes that the function returns
let colorschemes = []
" Loop through each individual item in the list of runtime paths
for rtp in rtps
let colors_dir = rtp . "/colors"
" Check to see if there is a colorscheme directory in this runtimepath.
if (isdirectory(colors_dir))
" Loop through each vimscript file in the colorscheme directory
for color_scheme in split(glob(colors_dir . "/*.vim"), "\n")
" Add this file to the colorscheme list with its everything
" except its name removed.
call add(colorschemes, fnamemodify(color_scheme, ":t:r"))
endfor
endif
endfor
" This removes any duplicates and returns the resulting list.
return uniq(sort(colorschemes))
endfunction
Vous pouvez ensuite utiliser la liste renvoyée par cette fonction dans vimscript. Par exemple, vous pouvez simplement faire écho à chaque schéma de couleurs:
for c in GetColorschemes() | echo c | endfor
Je ne vais pas expliquer ce que fait chaque fonction ou commande individuelle ici, mais voici une liste des pages d'aide pour toutes celles que j'ai utilisées:
:help 'runtimepath'
:help :let
:help :let-&
:help split()
:help :for
:help expr-.
:help :if
:help isdirectory()
:help glob()
:help fnamemodify()
:help add()
:help uniq()
:help sort()
Vous pouvez essayer ceci
:colorscheme
, Appuyez ensuite sur la spacetouche puis sur la tabtouche.
wildmenu
et wildchar
paramètres et que cette réponse est essentiellement le même que celui de tivn