最近追加した設定
飛び入りでお邪魔した渋谷.rbでEmacsの話をしていたら全体的な設定を見直したくなってきたので、いくつか不要なものを切ったり入れたりした。試した設定の雑感を少し書く。
jaunte
Firefoxとかにあるプラグインのhit-a-hintを実現する。ある場所にカーソルを移動させたいとき、実行すると単語や行毎にオーバーレイでヒントが表示されるので、ヒントに描いてある文字を入力すれば移動できる。渋谷.elの人に教えていただいた。
単語単位だとヒントだらけになって見辛いし、そんなに使わないので切った。
ace-jump-mode
jaunte.elと似たようなもの。単語もしくは文字単位でヒントを表示させる際に、カーソルを移動させたいところの文字を打ってヒントを絞るので、jaunteよりも見やすくなる。でもあんまり使ってない。
anything-imenu
バッファ内の関数定義等に飛べるimenuをanythingで使う。普通に便利。
expand-region
文脈を読んで選択範囲を広げたり狭めたりできる。C^@でexpand-regionを実行できるとしたとき、どんな動きをするのか説明すると
def average( arr ) total = 0 arr.each do |e| total += e end return total.to_f / arr.size end
みたいなわざとらしいRubyの関数定義があって、"total += e"の"o"にカーソルがあったとすると、C^@すると"total"を範囲選択できる。もう一回C^@すると"arr.each ~ end"までを選択してくれる。さらに一回C^@すると"def ~ end"までを選択する。という風にちゃんとRubyの文脈を読んで範囲選択してくれる。
mark-multiple
Sublime text2のデモを見ていたら同じ語を同時に編集するというのがあって、かっこいいな〜と思っていた。Emacsではmark-multipleを使うと実現できる。
smart-forward
expand-regionで文脈を読んでくれる機能を活かして、賢くカーソル移動をする。自分がコードを書くときは行単位の文脈を空行で決定しているので、空行単位で移動する(Emacs のカーソルを次の空行に移動する - ミントフレーバー緑茶)のに馴染みすぎてあんまり使ってない。
おわり
細かく設定できるエディタは自分が不便だと思ったときに機能追加できるから嬉しい。でも、どんな機能が便利なのか自分でも見つからないことが多い。人が使っているのを動画とかで眺めているとよく分からないけど便利そうなことをやっていることがあるので、同じことができないかEmacsで探したりするといいかも。
Sublime text2とかは有料だからデモ動画とかに力を入れているように見える。mark-multipleはそのデモ動画から見つけてきた。RailsCastsを見るとSublime text2で何やらかっこいいことをやっていて浮気しそうになるけど、それEmacsでもできるので帰ってこい。
Emacs以外ではターミナルをrxvt-unicodeにして軽くなったと喜んだり、zsh5.0でコマンドラインハイライトを試したりしていた。