筆者の手元のMacOSX上のEmacsで/tmp/
以下のPHPファイルを開くと下記のようなエラーが出てflymakeが動いてくれないという問題がありましたが、これが解決できたという話です。
この問題について以前flymakeの中身を追いかけたところでは、シンボリックリンクをうまく辿れないことによるflymakeのバグだという結論になりました。MacOSX上では/tmp/
が/private/tmp/
へのシンボリックリンクになっているので、/tmp/
以下でだけこの問題が起きていたというわけです。とはいえこのバグを修正するほどの熱意もなかったので、諦めてそのまま使っていました。
しかし、Emacsの挙動を変更してシンボリックリンクを解決したパスでファイルオープンするようにすればこの問題は起きないはずです。そんな設定が「find-file-visit-truenameを設定する - すぎゃーんメモ」で紹介されていました。
;; ファイルオープン時、シンボリックリンクを解決したパスで開く
;; http://d.hatena.ne.jp/sugyan/20120105/1325766364
(setq-default find-file-visit-truename t)
上記の設定をした結果、/tmp/
以下のファイルに対してもflymakeが期待通り動くようになりました。やったね!