Emacs: compile-command Makefile の有無や major-mode に応じて設定
2007.11.01
前回の記事でしたかったことは、ふつーに compile 自体が対応していました。
docstring にも書いてありますし。よく読め >自分
ミニバッファで compile-command を修正するかも、save-some-buffers するかどうかも、変数で制御できるんですね。prefix で反転もできるし。
また、compile-command は compie の中で eval されてるので、ただの文字列のみでなく S 式が記述できるんですね。
Makefile の有無や major-mode に応じた文字列を返すような S 式に setq-default しておけばよい、と。
ただ、setq-default した S 式が毎回評価されるのもあれ(*)なので、compile-command に compile-command を setq する S 式を設定しておくことにしてみました。
set-compile-command.el
(autoload 'set-compile-command "set-compile-command" nil t) (make-variable-buffer-local 'compile-command) (setq-default compile-command '(set-compile-command)) (setq compilation-read-command nil compilation-ask-about-save nil compile-command-mode-specific '((emacs-lisp-mode . ((flags . "-f ~/share/mk/elisp.mk") (ext . ".elc"))))) (define-key my-prefix-map "C-c" 'compile)shell-mode 等からタグジャンプしたい場合、 compilation-shell-minor-mode を使うのも手なわけですね。 ぃゃ、でも ffap がタグジャンプに対応しててくれてもいいと思うんだ... * だって 2 回 eval してるんですもん。 interactive 内で let しても、後で再利用できないからしょーがないんでしょうけど。
カテゴリー:技術情報メモ