Makefileさえ作っておいとけば、該当する拡張子のファイルがセーブされた瞬間にコンパイルシェルをバックグラウンドで開くというスグレモノ。globalを入れてないと動かないのが難点といえば難点か。いやglobalのとこだけコメントアウトすればよさそうなんだけどね。
C, C++などのコードをEmacs上で編集しているときに、ファイルを保存したタイミングで、バックグラウンドで make コマンドが自動で実行されます。
で、僕はTeXまでもMakefileを作ってしまうので、.emacsはこんな感じ。
(require 'auto-compile) ;; auto-compileを有効にする path の設定(正規表現でマッチング) (setq auto-compile-target-path-regexp-list (list "kuenishi" "src")) ;; auto-compileを有効にする拡張子の追加(.cppなんかはデフォルトで入ってる) (setq auto-compile-target-file-regexp-list (list "\.tex$")) (setq compile-command "make -k")
というか、TeXの場合は、コンソール、emacs、xdviとウィンドウが三つ出てくるのでAlt+Tabでウィンドウを切り換えるときによく間違ってしまう。xdviでCtrl+pとか押してプリントダイアログが出てしまったりする。このauto-compileを使うと、コンソールウィンドウは必要なくなるので、makeするためにAlt+Tab→Ctrl+p→RETと入れていたのが必要なくなる。それでプリントダイアログも出なくなる。素晴らしい。