機能としては、F5 でランダムに colorscheme を変え、cs で設定を保存する。これだけです。 変更した colorscheme を保存する機能が、一番作りたかったところです。
function ColorSchemeChange()
function! RandInt(Low, High) abort
let l:milisec = str2nr(matchstr(reltimestr(reltime()), '\v\.\zs\d+'))
return l:milisec % (a:High - a:Low + 1) + a:Low
endfunction
let schemes = globpath(&rtp, "colors/*.vim")
let filelist = split(schemes, "\n")
let filepath = filelist[RandInt(0, len(filelist))]
let filename = split(filepath, '/')[-1]
let colorscheme = split(filename, '\.')[0]
exec 'colorscheme ' . colorscheme
endfunction
function ColorSchemeSave()
let colorscheme = execute('colorscheme')[1:]
let config = ['set background=' . &background, "colorscheme " . colorscheme]
call writefile(config, expand('~/.vimrc.colorscheme'))
endfunction
nnoremap cs :call ColorSchemeSave()
nnoremap <F5> :call ColorSchemeChange()<CR>:colorscheme<CR>
nnoremap bd :set background=dark<CR>
nnoremap bl :set background=light<CR>
" colorscheme monokai
execute ':source ' . '~/.vimrc.colorscheme'
このスクリプトと、colorscheme のリストをまとめたプラグインを併用すると、colorscheme を気軽に変更できます。
colorscheme のリストは以下が有名ですが、他にもあります。
私は flazz/vim-colorschemes を vim-plug から利用しています。
ところで colorscheme を変更するプラグインは、ランダムではなく一つずつチェックしながら変更するものがいくつかあります。 ただ変更したものを保存できないため不満だったのと、 flazz/vim-colorschemes くらい colorscheme が多くなってくると一つ一つ選ぶ気が起きないので、ランダムなものが欲しかった。
話は変わりますが、Vim Script って arr[1:] みたいな Numpy 表記ができるんですね。 Vim で Deep Learning もできなくはないんだなあ…。
0 件のコメント:
コメントを投稿