VimのQuickFixとRubyのスタックトレース
ファイルに書き出したスタックトレースをVimのQuickFixに食わせるとファイルオープンがめちゃくちゃ楽になるという話です。
http://vim-jp.org/vimdoc-ja/quickfix.html
下記みたいなコードを、読みたいメソッドに書き込んで、何らかでそのメソッドを実行します。
実行後は、 Vimで:cfile /tmp/ruby_caller
と:cwindow
を実行するとQuickFixがファイルへの参照リストを作成してくれているのでファイルオープンが最高に楽になります。
begin
raise
rescue => e
File.write("/tmp/ruby_caller", e.backtrace.join("\n")) && raise
end
ということをキーマッピングすればめちゃくちゃ便利。
nnoremap <leader>rw obegin; raise; rescue => e; File.write("/tmp/ruby_caller", e.backtrace.join("\n")) && raise; end<esc>
nnoremap <leader>rr :cfile /tmp/ruby_caller<CR>:cw<esc>
nnoremap <leader>re :e /tmp/ruby_caller<esc>
(caller
でもスタックトレースが読めますがraiseした時点
の行が出力されない場合があるのでエラーオブジェクトからスタックトレースを採っている)
下記マッピングもあるとQuickFixが使いやすくなる。
nnoremap <C-p> :cprevious<CR> " 前へ
nnoremap <C-n> :cnext<CR> " 次へ
糸冬
-
category:
- 開発環境 tags: