選択した範囲に記述されたvimエディタのコマンドを、順々に実行するスクリプトです。 vimエディタ設定の確認や、vimスクリプトのデバッグで使用します。 (Windows, Mac)
batch.vim - 名無しのVIM使い
これすげえ。今まで
だったのに!さくっと動かして確認出来ちゃう。せっかくなのでこの Batch.vim のソースを読もうと思ったら既にコメントが丁寧に書いてある。処理としては
1. 選択した範囲の行のvimスクリプトを読み込む 2. 一時ファイルに書き出す 3. 一時ファイルに書き出したvimスクリプトを実行する 4. 一時ファイルを削除する
とな。すげい。ほぼ数行で済んでる処理を抜き出すと
:function! s:Batch() range " 選択した範囲の行のvimスクリプトを読み込む :let l:selected = getline(a:firstline, a:lastline) " 一時ファイルの名前を取得する :let l:tempfile = tempname() " try-finally文で確実に一時ファイルを後始末する :try " 一時ファイルに読み込んだスクリプトを書き出す :call writefile(l:selected, l:tempfile) :try " 一時ファイルのvimスクリプトを実行する :execute ":source " . l:tempfile
range を書いておけば getline で取れるのか。勉強になる。