답변:
가장 쉬운 방법은 :help c_Ctrl-d
after 를 사용하는 것 :colorscheme
입니다.
따라서 :colorscheme
Ctrl-d사용 가능한 색상 표가 출력됩니다.
다른 답변은 사용 가능한 색상 표를 표시하는 대화식 방법을 보여 주지만, 아무도 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에서이 함수가 반환 한 thie list를 사용할 수 있습니다. 예를 들어, 각 색상 구성표를 간단히 에코 할 수 있습니다.
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()