mode-compile.elの設定ではまった
シェルにbashを使い、perlはactiveperlでcperl-modeから[http://www.emacswiki.org/emacs/ModeCompile:title= Mode Compile [EmacsWiki]]で"\C-cc"がしたかった。
でも、それは無理っぽい。
c:\perl\bin\perl.exeがc:perbinper.exeになってしまう。
つまり、エスケープされちゃう。
それでシェルをcmd.exeにすると、渡されるスクリプトのパスがd:/devel/perl/test.plという形式なのでcmd.exeに理解できない。
shellはshじゃないとダメっぽい。
じゃあ、cygwinのperlでいこう。
すると、c:\cygwin\bin\perl.exeとなって、これがc:cygwinbinperl.exeとなって、結局同じ。
調べるとどうやらmode-compileは、exec-pathから実行ファイルを探してる。
そこにはwindows形式のパスが入ってる。
だから、
(setq exec-path (append (list "/bin" ) exec-path))
というように、cygwin上でのパスを先頭にくっつけた。
すると、/bin\perl.exeとなった。
そこで、.emacsに
(setq mode-compile-dir-separator-char "/")
を追加。
これでめでたく、/bin/perl.exeで実行できた。
しかしこの解決法だと、windows上の処理系を使いたいケースに対応できない。
meadowから普通のwindows形式のパス区切り文字でファイルが渡るように出来ないのかな?
それにしても、こんな風になるというのは、どこかおかしな設定をしてるんだろうな。