最近はRailsからちょっと離れ、素のRubyでいくつかライブラリの使い方なんぞを調べています。
Rubyのスクリプトを書くのに以前はRDEを使っていたんですが、せっかくなのでこれもVimに移行してみました。
とはいえデバッグ周りの便利なGUIは一切無いので、あくまでちょっとしたスクリプトを書く程度の使い方になります。
:!rubyコマンド スクリプトの終了後、何かキーを押すとコマンドプロンプトのウィンドウが閉じてVimにフォーカスが戻ります。 別にこのまま使っていてもいいのですが、今回はもうちょっとこれを便利にしていきましょう。
QuickFix QuickFixの主なコマンドは以下の通り。
実行結果のプレビュー表示 私は以下のようにvimrcに追加しておきました。(キーマップ以外特に変更していません)
通常の実行方法?
通常Rubyの使用できる環境であれば、以下のコマンドを実行することで現在開いているファイルをRubyで実行できます。:!ruby %
Windowsのコマンドプロンプトが別窓で立ち上がり、コマンドラインから実行したときと同じような状態で実行結果が表示されます。
:!rubyコマンド スクリプトの終了後、何かキーを押すとコマンドプロンプトのウィンドウが閉じてVimにフォーカスが戻ります。 別にこのまま使っていてもいいのですが、今回はもうちょっとこれを便利にしていきましょう。
シンタックスエラーをQuickFixで一覧表示
スクリプトの実行時にエラーが出る場合、以下の方法でQuickFixにエラー箇所の一覧を表示することができます。(参考ページ‥vimでrubyプログラミング S.S.S. blog/ウェブリブログ) まず﹁~/vimfiles/after/ftplugin/ruby.vim﹂に次の一行を追加。compiler rubyこれでコンパイラプラグインが有効になり、以下のコマンドが使えるようになるよう。
:make -c %
:cw #エラーがある場合のみQuickFixを表示
こんな感じで表示されます。
QuickFix QuickFixの主なコマンドは以下の通り。
:cn #次のエラー箇所へジャンプ :cp #前のエラー箇所へジャンプ(:cNでも同じ) :ccl #QuickFixを閉じる長めのスクリプトを扱う際には特に便利かもしれません。(実はあまり検証していないので実用性は計りきれていませんが)
バッファからの実行と結果のプレビュー表示
さて、ようやく本題。 以下のページで大変便利なTipsが紹介されていました。 ●Tip #1244 - preview interpreter’s output : vim online これを使うとコマンド一発で現在編集中のバッファをそのままRubyで実行し、さらに結果をVim内のプレビューウィンドウに表示できます。実行結果のプレビュー表示 私は以下のようにvimrcに追加しておきました。(キーマップ以外特に変更していません)
"preview interpreter's output(Tip #1244) function! Ruby_eval_vsplit() range if &filetype == "ruby" let src = tempname() let dst = "Ruby Output" " put current buffer's content in a temp file silent execute ": " . a:firstline . "," . a:lastline . "w『 . src 』open the preview window silent execute ":pedit!『 . dst 』change to preview window wincmd P 『 set options setlocal buftype=nofile setlocal noswapfile setlocal syntax=none setlocal bufhidden=delete 』replace current buffer with ruby's output silent execute ":%! ruby " . src . " 2>&1『 』change back to the source buffer wincmd p endif endfunction "<F10>でバッファのRubyスクリプトを実行し、結果をプレビュー表示 vmap <silent> <F10> :call Ruby_eval_vsplit()<CR> nmap <silent> <F10> mzggVG<F10>`z map <silent> <S-F10> :pc<CR>ちなみに、前述のシンタックスチェックは以下のようにマッピングしてあります。
"<M-F10>でRubyスクリプトを保存後シンタックスチェックし、エラーをQuickFixに表示 nmap <silent> <M-F10> :w<CR>:make -c %<CR>:cw<CR>:cfirst<CR>zz nmap <silent> <M-S-F10> :ccl<CR>実行後にキー入力が必要なスクリプトなどはコマンドプロンプトを使って実行します。
"<C-F10>でRubyスクリプトを保存後コマンドプロンプトから実行 nmap <silent> <C-F10> :w<CR>:!ruby %<CR>これでなかなか快適になりました。
その他
ついでにそのほかのRuby関連の話題を2つほど。refe.vim
●川o・-・︶<2nd life - vim で Ruby のリファレンスマニュアルをさくさく検索する - refe.vim リファレンスの検索はこれが便利。lookupfile.vimは無効にして使っています。"検索にlookupfile.vimを使用しない(refe.vim) let g:loaded_lookupfile = 0 let g:RefeUseLookupFile = 0Refeのウィンドウでの主なキー操作は以下の通り。
o:カーソル下の単語からよしなにリファレンスを検索B:元読んでいたリファレンスに戻る(Back) -:今開いているクラスのリファレンスを読む
Comments»
いつも役に立つエントリありがとうございます。これからも頑張って下さい。
ありがとうございます。こういうコメントがいちばん励みになります。