@kyanny's blog

My thoughts, my life. Views/opinions are my own.

ruby-1.8.7-p160 をインストールした

なんとなく ruby の最新版でもインストールしてみるか、と思ってインストールした。

1.9.1 が本当の最新安定版らしいけど、 1.8 系と 1.9 系はいろいろ違うらしいので、枯れてるバージョンのほうが何かと情報に困らないかもな、と思って(1.9.1 もダウンロードして make まではしたけどインストールまではしなかった)

あと以前から ruby プログラムを書いてみようかなーと思ったときにシンタックスハイライトされないのが気になっていたのでこの機会にそれもできるようにしようと思って少し調べた。

Mac OSXのemacsに、Rubyモードを設定 - Goodpic

ここを参考に(2005 年とは古いな。。)、落としてきた tarball を展開したなかの misc/ 以下に *.el があったので全部 /Applications/Emacs.app/Contents/Resources/site-lisp/ ディレクトリに突っ込んだ。

しかし上のサイトに書いてある .emacs.el へ書く設定例をコピペすると Emacs が起動時に固まる。なのでちまちま削って、

;; ruby-mode.el
(autoload 'ruby-mode "ruby-mode"                                                        
  "Mode for editing ruby source files" t)                                               
(setq auto-mode-alist                                                                   
      (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))                               

これだけ書いた。とりあえず *.rb なファイルを開いてバッファに何か書いたらなんとなく ruby っぽいシンタックスハイライトがされてるようだったのでこれで ok とする。

あと、 ruby-mode の設定(かわちょぶろぐ、2008年01月10日) によると ruby-electric.el を有効にするといろいろ補完が自動できいてよさそうだったのでそれも入れた。

;; ruby-electric.el
(require 'ruby-electric)
(add-hook 'ruby-mode-hook '(lambda () (ruby-electric-mode t)))

;; ruby-mode indent
(setq ruby-indent-level 4)
(setq ruby-indent-tabs-mode nil)

ついでにインデントも、 4 スペで。 Emacs を再起動しないと ruby-electric.el は有効にならなかったかも。俺が書ける ruby っぽいコードは今のところ

10.times do |i|
    puts i
end

だけなので、これを書いてみたらナルホド確かに do をかいたら end が勝手に挿入された。これはいいね。

インデントはちょっと納得いかない感じだ。 atomutil で fotolife API をたたいてみる - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech を参考に真似てみて、 Atompub::Client.new({ と書いて RET するとインデントが超深くなる。これは嫌なので 4 スペにしたいが・・・。

少し探して、解決方法を見つけた。

プログラムのインデントが気に入らない - gan2 の Ruby 勉強日記

;; ruby-mode indent
(setq ruby-indent-level 4)
(setq ruby-indent-tabs-mode nil)
(setq ruby-deep-indent-paren-style nil)

と、 ruby-deep-indent-paren-style を nil にしてだいたい解決。