有人可以建议修改mode-compile.el,使其在Windows上运行得更好吗?我的具体问题是处理包含空格的路径名。我正在研究Ruby中的代码,使用2008-03-26版本的“GNU Emacs 22.2.1(i386-mingw-nt5.1.2600)”与mode-compile.el版本:2.29(最后修改时间:2006/12) / 01 13:52:47)
mode-compile.el生成的命令行编译(运行)我的缓冲区a.rb是这样的:
c:/ ruby / bin \ ruby.exe -w c:/ 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,也许这实际上做了一些完全不同的事情(比如只是附加一个几乎为空的双引号标记):
(如果是to-compile-fname (如果是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
提前致谢!
威廉
答案 0 :(得分: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))))
请试试并报告吗?
干杯, 丹尼尔