便利なコンパイル機能 smart-compile

Emacs Lisp TIPS
なんでこれ今まで使ってなかったんだろう…。
考えてみたらいちいちコマンドラインから「ruby hoge.rb」とかって実行するのって面倒だよなぁ。
「smart-compile」を使うと、ファイルを編集中に自分の好きなバインドでコンパイルを実行できて
結果を分割されたウィンドウで確認することができる。


以下僕の導入手順。
詳しい説明はリンク先を参照のこと。

  • smart-compile.elをダウンロードしてロードパスの通った場所に置く
  • 以下の内容を .emacs に追加する
;;; smart-compile
(require 'smart-compile)
(global-set-key "\C-x\C-x" 'smart-compile)
(setq compilation-window-height 15) ;; デフォルトは画面の下半分
  • elispコンパイルしないように設定
    • 拡張子ごとのカスタマイズは直接「smart-compile.el」の「smart-compile-alist」を編集してするみたい
    • 僕は普段から elc は全然作らない。elc にしてもあんまり速度は変わらないって聞くし、ソースをいじる度にコンパイルするのも面倒だから。


これで「C-x C-x」で編集中のファイルを自動的に判別して
それに対応したコンパイルをすることができるようになった。


ちなみに「C-x C-x」は、デフォルトでは「exchange-point-and-mark」っていう
マーク位置とポイント位置を切り換えるコマンドにバインドされているんだけど
僕はリージョンを視覚的に確認できるようにしてあるのでこれは特に必要のない機能だと思う。
なのでこいつのポジションを奪うことにした。
「X」は「eXecute」から連想できて覚えやすいしね!


最初は「C-x C-c」(c から Compile を連想できる) にバインドしようと思ったんだけど
C-x C-c はすでに重要なものに割り当てられてるのを忘れてた。
終了させるときにいつも使っているのになんで大丈夫だと思ったんだろう?