refe.vim導入しました。以下記録。
Refeの導入
RubyGemsからインストールします。
# sudo gem install refe
しかしこのままだとUTF-8を使っているとで化けるので修正します。
refeのutf-8化 - 適当日記 - 断片部を参考にしつつもすでにrequireしてるNKFを使います。
/Library/Ruby/Gems/1.8/gems/refe-0.8.0.3/lib/refe/searcher.rb
def adjust_encoding( str ) if shift_jis_platform? NKF.nkf('-Es', str) else # str NKF.nkf('-Ew', str) # <=追加 end end
これでUTF-8でも日本語表示できるようになりました。
refe.vimの導入
id:secondlifeさんの便利なプラグイン。vim上でさくさくひけます。
vim で Ruby のリファレンスマニュアルをさくさく検索する - refe.vim - 川o・-・)<2nd life
ダウンロード後、以下のように導入します。
# vim -c 'so %' refe.vba
これで動くには動くのですが、個々のレファレンスに飛ぼうとするとエラーで落ちます。どうもvimにpatch.111を当てないとshellescape関数が使えないためパッチの当たってない僕の環境では動かなかったようです。
幸い、この問題はid:secondlifeさん自身によって解決されていました。
vimscript で shellescape - #生存戦略 、それは - subtech
差し替えたと書かれてますが、差し変わってないようですので直接修正します。
" s:shellescape関数の追加 function! s:shellescape(arg) return "'" . substitute(a:arg, "'", "'\\\\''", 'g') . "'" endfunction " ここまで function! s:RefeArgEscape(arg) let arg = a:arg if match(arg, "^'") == -1 let args = split(arg, '\s') let arg = '' for ar in args " 修正 shellescape(ar) => s:shellescape let arg .= s:shellescape(ar) . ' ' endfor endif return arg endfunction
Windows環境用の修正は必要ないので抜きました。必要な方はリンク先を参照してください。
設定
自分用に設定します。
.vimrc
" for refe.vim let g:loaded_lookupfile = 0 let g:RefeUseLookupFile = 0 au BufRead *rb nmap <buffer> K :Refe <cword><CR>
lookupfile.vimは使ってないので使わないようにして、Shift+K*1でカーソル下の単語をRefeでひけるようにしてます。
使う
:h refe
"あとで書く"が並んでいましたorz
基本は:Refe (調べたいメソッド名など)でいけます。引数なしで呼ぶとメニューが出るので、選んでから"o"で開いて、戻るときは"B"、クラスやモジュールは"-"で。
.vimrcで設定してるのでShift-Kで、カーソル下の単語をひくことも出来ます。
便利!そしてid:secondlifeさんに感謝!
追記
どうやらvbaファイルがロールバックしちゃってたみたいです。
secondlifeさんが速攻で差し替えてくださったので、そちらを使わせていただきましょう。
マニュアルも完璧なものなのでこのエントリーなんか読まずに:h refeで。
*1:通常はmanでひきます。