はじめに
tempファイルにてrubyを試せるようにしており、簡単に動作確認などをできるようにしていましたが
bundleのおかげでgemのrequireがうまくいかない!!ってなったのでbundle exec ruby
を使ってquickrunを実行できるようにコマンドを作りました
これが元の設定
letg:quickrun_config={ \'_':{ \'runner':'vimproc', \'runner/vimproc/updatetime':60, \'outputter/error/success':'buffer', \'outputter/error/error':'quickfix', \'outputter/buffer/split':':botright 8sp', \'hook/time/enable':'1' \}, \'bundle_ruby':{ \"vimproc/sleep":0, \"outputter/buffer/into":1 \} \}
bundle_rubyを実行する専用コマンドを定義
必ず1回はQuickRunBundleRuby
に引数を渡す必要がある
=> なければエラー
1回渡せば次回からは前回の値をそのまま使用する
再度渡せば、設定値を変更して実行
function!s:bundle_ruby(...)if!exists("g:my_quickrun_config")letg:my_quickrun_config={}endifif exists("a:1")letg:my_quickrun_config["bundle_gem_path"]=a:1elseif!has_key(g:my_quickrun_config,"bundle_gem_path")echom"require temporary bundle_gemfile_dir path"returnendifechom"env BUNDLE_GEMFILE=".g:my_quickrun_config["bundle_gem_path"]."/Gemfile bundle exec ruby %o %s:p "letg:quickrun_config["bundle_ruby"]["exec"]="env BUNDLE_GEMFILE=".g:my_quickrun_config["bundle_gem_path"]."/Gemfile bundle exec ruby %o %s:p "
exe "QuickRun bundle_ruby"endfunction
command!-nargs=? QuickRunBundleRuby calls:bundle_ruby(<f-args>)
めでたしめでたし