Rubyの勉強を始めてみたのさ。

基本的に、自分だけで利用するようなものはPythonを使って作ったりしてみてますが、
最近ようやく気になってきた(遅い)Rubyの勉強を始めました。

たまたま行った本屋にid:rubikitch さん著の「Ruby 逆引きハンドブック」があったので、余っていた図書カードを使って買ったから、というのもあります。

さて、ます始めるにあたって、環境の整備から始めるのが私です。
Google先生に聞きつつ、rcodetools.el、anything-rcodetools.elなどを導入。

おー、do打ったらendが自動補完される。これなら楽かも(今迄このendがあるというのがやっていない理由だった)。

・・・が、肝心の補完機能rct-complete-symbol--anythingが動かないorz

再びGoogle先生に聞いてみると、「rcodetools.elにはri-rubyが必要」と言われたので、ri-emacsを導入しました。

ri-ruby.elとri-emacs.rbを、とりあえず~/.emacs.d/に放り込んで、.emacsに設定を記述(ri-ruby.elに書いてあるのをそのまま)して、
再度rct-complete-symbol--anythingを実行・・・やっぱ動かないorz


仕方がないので、ruby ~/.emacs.d/ri-emacs.rb としてみたら、syntax errorが。
うーん、rubyの文法はまだよくわからんなぁ、と思いつつ該当箇所を参照してみると、

case ~
when ?.: nil
       ^ syntax error

みたいな形になっていた。Ruby 1.8だとこれでも大丈夫みたいですが、Ruby1.9だと改行を入れるのが一番のようなので、:を改行に置換して
みたところ、syntax errorが消えていて一安心・・・かと思いきや。

今度は ライブラリが見つからないとかいうエラーが・・・。んもうわけわからん、と思いつつ、再度中を見ると、頭のrequire 'rdoc/ri/ri_*' という
部分を調べるために、findしてみました。

find /usr/local/ -type d | grep "rdoc/ri"
 -- /usr/local/lib/ruby/1.9.1/rdoc/ri

ということなので多分該当するディレクトリで調べてみると、rdoc/ri/paths.rbのように、ri-emacs.rbでrequireしているライブラリ名とは違う名前になっていました。
こりゃいかんということで、

cd /usr/local/lib/ruby/1.9.1/rdoc/ri
for f in *.rb ; do ln -l $f ri_$f ; done ;

としてsynbolic linkを作成したところ、この辺のエラーは出なくなった、のですが。

今度は

uninitialized constant RiEmacs::RI (NameError)

こんなエラーが。うーん、と悩みつつ、今度はrdoc/ri/paths.rbとかの中を除いてみると、module RDoc::RI::Pathとかになっていました。
てことはri-emacs.rbの中を書き換えなけりゃならないのか・・・?とか思ったところで終了。

検索してみても、こんなエラーに遭遇している人が見つからないんですが、もしかして自分の環境がおかしいとかそういう悲しいことだったりするんでしょうか。
make installしただけなんだけどなぁ。