let s:defdir = expand('<sfile>:p:h') .. '/def' function! CSSelectCallback(item, idx) if a:item is v:null return endif let path = printf("%s/%s.vim", s:defdir, a:item) " load colorscheme def let g:colors_name = "" augroup persistent_colorscheme autocmd! augroup END source `=path` " and persist redraw if confirm('Save changes?', "&Yes\n&No\n", 2) == 1 call writefile(['source ' .. path], '/tmp/colors.vim') " カラースキーム動的読み込みしてるのでキャッシュ吹き飛ばす必要あり call delete('/tmp/inline.vim', 'rf') endif endfunction function s:run() abort let defs = readdir(s:defdir)->filter('v:val =~ "vim$"')->map('fnamemodify(v:val, ":r")') call luaeval('vim.ui.select(_A, {}, vim.fn.CSSelectCallback)', defs) endfunction call s:run()