Ответы:
Самый простой способ - использовать :help c_Ctrl-d
после :colorscheme
.
Таким образом, :colorscheme
Ctrl-dвыведем доступные вам схемы цветов.
Еще один способ показать список - set wildmenu
. При этом после :colorscheme
+ space
+ tab
отображается список завершения, который также можно выбрать с помощью клавиши со стрелкой или Ctrl-N
и Ctrl-P
. Это не только работа с цветовой схемой, но и над другим завершением cmdline. На поведение влияет wildmode
и лучше установить значение по умолчанию full
.
Если вы хотите сделать это в Vimscript, вы можете получить список цветовых схем с помощью функции getcompletion ():
let c = getcompletion('', 'color')
echo c
Это немного проще, чем существующий ответ Vimscript, который сканирует файловую систему.
Смотрите :help getcompletion()
для более подробной информации.
Другие ответы показывают интерактивный способ показать, какие цветовые схемы доступны, но никто не упомянул способ получения списка, который можно использовать в vimscript. Это адаптация моего ответа на этот вопрос .
Это решение использует 'runtimepath'
параметр для получения всех доступных каталогов colorscheme, а затем извлекает список файлов vimscript в этих каталогах с удаленными их расширениями. Это может быть не самый безопасный способ сделать это, поэтому улучшения приветствуются:
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
Затем вы можете использовать список, возвращаемый этой функцией в vimscript. Например, вы можете просто повторить каждую цветовую схему:
for c in GetColorschemes() | echo c | endfor
Я не буду объяснять, что каждая отдельная функция или команда делает здесь, но вот список страниц справки для всех тех, которые я использовал:
: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()
Вы можете попробовать это
:colorscheme
Затем нажмите spaceклавишу, а затем tabключ.
wildmenu
и wildchar
настройках , и что этот ответ является в основном таким же , как tivn в одном