Jawaban:
Cara termudah adalah menggunakan :help c_Ctrl-d
setelah :colorscheme
.
Jadi, :colorscheme
Ctrl-dakan menampilkan tema warna yang tersedia untuk Anda.
Cara lain untuk menampilkan daftar adalah dengan set wildmenu
. Dengan ini, setelah :colorscheme
+ space
+ tab
, daftar penyelesaian ditampilkan dan juga dapat dipilih dengan tombol panah atau Ctrl-N
dan Ctrl-P
. Ini tidak hanya bekerja pada colorscheme, tetapi juga pada penyelesaian cmdline lainnya. Perilaku dipengaruhi oleh wildmode
dan lebih baik diatur ke nilai default full
.
Jika Anda ingin melakukan ini di Vimscript, Anda bisa mendapatkan Daftar skema warna dengan menggunakan fungsi getcompletion ():
let c = getcompletion('', 'color')
echo c
Ini sedikit lebih sederhana daripada jawaban Vimscript yang ada, yang memindai sistem file.
Lihat :help getcompletion()
untuk lebih jelasnya.
Jawaban lain menunjukkan cara interaktif untuk menunjukkan colorcheme apa yang tersedia, tetapi tidak ada yang menyebutkan cara mendapatkan daftar yang dapat digunakan dalam vimscript. Ini adalah adaptasi dari jawaban saya untuk pertanyaan ini .
Solusi ini menggunakan 'runtimepath'
opsi untuk mendapatkan semua direktori colorscheme yang tersedia, dan kemudian mengambil daftar file vimscript di direktori tersebut dengan ekstensi mereka dihapus. Ini mungkin bukan cara paling aman untuk melakukannya, jadi perbaikan dipersilahkan:
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
Anda kemudian dapat menggunakan daftar ini yang dikembalikan oleh fungsi ini di vimscript. Misalnya, Anda bisa menggema setiap skema warna:
for c in GetColorschemes() | echo c | endfor
Saya tidak akan menjelaskan apa fungsi atau perintah masing-masing individu di sini, tetapi di sini adalah daftar halaman bantuan untuk semua yang saya gunakan:
: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()
Anda bisa mencoba ini
:colorscheme
, Lalu tekan spacetombol dan kemudian tabkunci.
wildmenu
dan Anda dan wildchar
bahwa jawaban ini pada dasarnya sama dengan yang satu ini