Risposte:
Il modo più semplice è usare :help c_Ctrl-d
dopo :colorscheme
.
Quindi, :colorscheme
Ctrl-dprodurrà i colori che hai a disposizione.
Un altro modo per mostrare l'elenco è di set wildmenu
. Con questo, dopo :colorscheme
+ space
+ tab
, viene visualizzato un elenco di completamento, selezionabile anche con il tasto freccia oe Ctrl-N
e Ctrl-P
. Questo non è solo un lavoro sui colori, ma anche sul completamento di altri cmdline. Il comportamento è influenzato wildmode
e impostato meglio sul valore predefinito full
.
Se vuoi farlo in Vimscript, puoi ottenere un Elenco di combinazioni di colori usando la funzione getcompletion ():
let c = getcompletion('', 'color')
echo c
Questo è un po 'più semplice della risposta Vimscript esistente, che esegue la scansione del filesystem.
Vedi :help getcompletion()
per maggiori dettagli.
Le altre risposte mostrano il modo interattivo di mostrare quali colori sono disponibili, ma nessuno ha menzionato un modo per ottenere un elenco che può essere usato in vimscript. Questo è un adattamento della mia risposta a questa domanda .
Questa soluzione utilizza l' 'runtimepath'
opzione per ottenere tutte le directory dei colori disponibili, quindi recupera un elenco dei file vimscript in quelle directory con le loro estensioni rimosse. Questo potrebbe non essere il modo più sicuro per farlo, quindi i miglioramenti sono i benvenuti:
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
È quindi possibile utilizzare l'elenco dei ladri restituito da questa funzione in vimscript. Ad esempio, potresti semplicemente fare eco a ogni schema di colori:
for c in GetColorschemes() | echo c | endfor
Non spiegherò cosa fa ogni singola funzione o comando qui, ma ecco un elenco delle pagine di aiuto per tutte quelle che ho usato:
: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()
Puoi provare questo
:colorscheme
, Quindi premere il spacetasto e quindi il tabtasto.
wildmenu
e dalle wildchar
impostazioni e che questa risposta è sostanzialmente la stessa di quella di