VimScriptをその場で実行
.vimrcがやたら汚くなってきたので書き直し中。いちいちsource %とかするのが面倒なので、その場で反映させたい。いつも忘れるのでメモ。
ヘルプをみると、
@{0-9a-z".=*} Execute the contents of register
@レジスタでレジスタ内のコマンドが実行できるので、それを利用してっと
~/.vim/after/ftplugin/vim.vimに追加する。
nmap <silent><buffer> <SPACE>e "zyy:@z<CR> vmap <silent><buffer> <SPACE>e "zy:@z<CR>
スペース + eで、
- ノーマルの場合行実行。
- ビジュアルの場合選択範囲実行。
こんなに大きなキーがあるのに活用してなかったとは!!
色々スペースに割り当てていこうかと思う。
ついでに
保存して全体実行
map <silent><buffer> <F5> :call <SID>Execute(expand('%:p'))<CR> function! <SID>Execute(path) w if (a:path =~ "^${HOME}/.vim/") execute 'runtime ' . substitute(a:path, "^${HOME}/.vim/", "", "") else execute 'source ' . a:path endif endfunction
pathによって、反映するコマンドを変更するようにしてみた。
すげー快適。
VimScriptメモ
VimScriptでは実行中の関数は動的に変更出来ないっぽい。怒られる。