最近のflymake事情とか

 → id:antipop:20080701:1214838633
 ごめんなさい、実はさっきまで外してました。というのも、ここんとこ、開発の際はリモートサーバにtrampでつなぐことが多く、その際flymakeが頑張り過ぎてリモートサーバにスクリプトを置いてシンタックスチェックをしようとしてたりするんです。そうなるとemacsはフリーズしてしまうので、強制的に落とすしかない。(もしかしたらauto-save-buffersも共犯かもしれないけど、あえて今回は無視)
 で、id:antipop氏のエントリが上がるまで、正直この問題は面倒くさくてflymakeの設定コードをコメントアウトで回避という、消極的もいいとこな対応をしてたんですが、いい加減なんとかしなきゃと思って一念発起したらあっさりいったっぽい。
 氏の設定の一番下を見ればわかるように、

(add-hook 'cperl-mode-hook 'flymake-perl-load)

と、最終的にはcperl-modeにフックしてflymakeを(そのバッファ上で)有効にしてるので、この時点でバッファ名をチェックしてローカルのファイルであればadd-hookを評価するように。すっごいダサい方法ですいません。だれか、もっといい書き方に直してください><

; バッファ名からtramp経由で読み込んだファイルかどうか判別
(defun tramp-is-running ()
  (string-match "^/\\(.*?\\):\\(.*?\\)@\\(.*?\\):"
                (if (null buffer-file-name)
                    ""
                  buffer-file-name)))

; snip

(if (not (tramp-is-running))
    (add-hook 'cperl-mode-hook 'flymake-perl-load))

 tramp-is-runningは定数として定義してもいいと思います。なんとなく関数化してるだけです。ありきたりすぎて名前空間かぶりそうなのが怖いので、もっとややこしい名前にした方がいいと思います。また、この設定方法は特定のモードに依存してるわけではないので(そうなってる筈…)、各種モードのadd-hookの際に一度チェックをかけるのがいいと思います。
(追記)
 人気エントリに自分の関わったものの名前がいきなりでてくるとビックリしますね><
 なんて小市民><