ruby-modeで使えるコマンドのまとめ

ruby-modeを全然活用できてる気がしないので、
もう少しどうにかならないかなぁと思って探していたら、
参考になる記事を見つけたのでメモ。
http://d.hatena.ne.jp/mahm/20070507/1178478239#c


おおっこれは便利だ!早速使おう!と思ったのが以下の3つ。

  • C-c C-e: endの挿入
  • C-j: インデントして改行
  • C-m: 改行

あ、endの挿入は普通に打ってもよさそうかな。。
間違いなく便利そうなのはC-j。
C-mもエンターまで指伸ばすよりこっちのが使いやすそう。
基本的には、今までエンターを押して改行していたところを、
全部C-jを押すようにすればよさそう。
たまに自動インデントだと嫌なときがあるから、
そういうときにはC-mを使うって感じかな。


それとリンク先では、
選択範囲を一括でコメントアウトするバインドの設定がのっていて、
その設定もとても便利そうだったので僕も真似してみた。
具体的にはruby-mode.elの102行目を以下のように書き換えた。
ついでにC-c C-uで選択範囲のコメントを解除する設定も加えてみた。

  (define-key ruby-mode-map "\C-m" 'newline)
  ;; C-c C-c で選択範囲をコメントアウト
  (define-key ruby-mode-map "\C-c\C-c" 'comment-region)
  ;; C-c C-u で選択範囲のコメントを解除
  (define-key ruby-mode-map "\C-c\C-u" 'uncomment-region)
  )

本当は#で始まる行の場合はコメントの解除、
そうでない場合はコメントアウト
という2つの役割をC-c C-cに持たせたいのだけど、
elispがよく分かってないので今は無理。
ちょっと勉強しようかなぁ。


余談だけど、
「C-u -1 M-x comment-region」というように、
引数に-の値を与えるとcomment-regionでもコメントの解除ができるらしい。

追記

僕がやりたかったことは M-; でできることをコメントで教えてもらった。
しかも M-; は ruby-mode 以外でも使えるみたい。
これからは M-; を使っていくことにする。