1

Windows での動作を改善するための mode-compile.el の変更を提案できる人はいますか? 私の特定の問題は、空白を含むパス名の処理です。私は Ruby でコードに取り組んでおり、mode-compile.el バージョン: 2.29 (最終更新日: 2006/12 /01 13:52:47)

バッファ a.rb をコンパイル (実行) するために mode-compile.el によって生成されるコマンド ラインは次のとおりです。

c:/ruby/bin\ruby.exe -wc:/Documents and Settings/William/My Documents/src/a.rb

このエラーを生成するもの:

c:/ruby/bin\ruby.exe: そのようなファイルまたはディレクトリはありません -- c:/Documents (LoadError)

これはうまくいきます:

c:/ruby/bin\ruby.exe -w "c:/Documents and Settings/William/My Documents/src/a.rb"

回避策として、ディレクトリ ツリーを移動して、パスに空白が含まれないようにすることができます。mode-compile.el のコードを見ると、引用符を追加する関数が既に存在しているように見えますが、私は emacs-lisp に精通していないため、おそらくこれは実際にはまったく異なることを行います (ほぼ空の二重引用符の部分):

(if to-compile-fname (if mc--build-op-args (mc--build-output-args to-compile-fname) (concat " " to-compile-fname) ) " "))))

mode-compile.el はここから来ます: http://perso.tls.cena.fr/boubaker/distrib/mode-compile.el

前もって感謝します!

ウィリアム

4

1 に答える 1

0

これを実際にテストする時間はありませんが、関数mc--shell-compileを更新する必要があるようです。バッファーのファイル名は、次の行によって抽出されます。

     (shfile  (or mc--remote-pathname (buffer-file-name)
                  (error "Compilation abort: Buffer %s has no filename"
                         (buffer-name))))

修正は、次を引用することbuffer-file-nameです:

     (shfile  (or mc--remote-pathname (shell-quote-argument buffer-file-name)
                  (error "Compilation abort: Buffer %s has no filename"
                         (buffer-name))))

試して報告してもらえますか?

乾杯、ダニエル

于 2009-06-04T07:06:21.033 に答える