編集中のファイルを実行する

選択した範囲に記述された vim スクリプトを実行する

とりあえずインストール. ~/.vimrc に以下を記述して ":NeoBundleUpdate"

NeoBundle "https://github.com/vim-scripts/batch.vim"

編集中のファイルで、:Batch ってやるとコマンドを実行して表示してくれる

任意のコマンドを実行する

" batch.vim を参考に.
function! s:do_command(cmd) range
	let selected = getline(a:firstline, a:lastline)
	let tmpfile = tempname()

	try
		call writefile(selected, tmpfile)
		echo system(a:cmd . ' < ' . tmpfile)
	finally
		if filewritable(tmpfile)
			call delete(tmpfile)
		endif
	endtry	
endfunction

:command! -range -narg=0 HOGE :<line1>,<line2>call s:do_command("hoge -U tako")

:HOGE ってやれば, 選択したファイルを一時ファイル tmpfile に保存し、下記のように実行する

% hoge -U tako < tmpfile

vim-quickrun

上記のようなスクリプトなんか書く必要はなく vim-quickrun を使えばいい. 便利.

hoge コマンドを s:do_command 関数のように実行したければ, 下記のように設定して
":QuickRun hoge" とやればいい

let g:quickrun_config['hoge'] = {
\		'command' : 'hoge',
\		'cmdopt'  : '-U tako'
\		'exec'    : '%c %o < %s'
\}

batch.vim に相当することも範囲選択して ":QuickRun vim" とやれば実現できる.