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 しても、後で再利用できないからしょーがないんでしょうけど。カテゴリー:技術情報メモ
