Tôi chỉ có chế độ biên dịch.el v2.29, nhưng trong phiên bản đó vấn đề chính xác như bạn mô tả, các đối số cho lệnh biên dịch không được thoát đúng cách và không có tùy chọn để bật nó.
Đó là một chút hack nhưng bạn sẽ có thể để xác định lại chức năng có liên quan với đúng thoát cho tên tập tin với điều này trong .emacs
tập tin của bạn:
(eval-after-load 'mode-compile
'(progn
(defun mc--shell-compile (shell dbgflags &optional errors-regexp-alist)
;; Run SHELL with debug flags DBGFLAGS on current-buffer
(let* ((shcmd (or (mc--which shell)
(error "Compilation abort: command %s not found" shell)))
(shfile (or mc--remote-pathname (buffer-file-name)
(error "Compilation abort: Buffer %s has no filename"
(buffer-name))))
(run-cmd (concat shcmd " " dbgflags " " (shell-quote-argument shfile) " "
(setq mc--shell-args
(read-string (if mode-compile-expert-p
"Argv: "
(format "Arguments to %s %s script: "
shfile shell))
mc--shell-args)))))
;; Modify compilation-error-regexp-alist if needed
(if errors-regexp-alist
(progn
;; Set compilation-error-regexp-alist from compile
(or (listp errors-regexp-alist)
(error "Compilation abort: In mc--shell-compile errors-regexp-alist not a list."))
;; Add new regexp alist to compilation-error-regexp-alist
(mapcar '(lambda(x)
(if (mc--member x compilation-error-regexp-alist) nil
(setq compilation-error-regexp-alist
(append (list x)
compilation-error-regexp-alist))))
errors-regexp-alist)))
;; Run compile with run-cmd
(mc--compile run-cmd)))))
Dòng Tôi đã thay đổi được thay đổi
(run-cmd (concat shcmd " " dbgflags " " shfile " "
để
(run-cmd (concat shcmd " " dbgflags " " (shell-quote-argument shfile) " "
Một hoàn chỉnh hơn sửa chữa sẽ được cũng thoát khỏi dbgflags
(bất cứ nơi nào chúng được đặt, chỉ cần thoát khỏi toàn bộ biến sẽ không đúng) và mc--shell-args
khi chúng được đặt.
Nguồn
2012-06-23 14:50:24
'C-c c' có vẻ là một ràng buộc không chuẩn. Những gì bạn nhận được nếu bạn gõ 'C-h c C-c c'? – legoscia
'mode-compile.el' không phải là tiêu chuẩn. Bạn đang sử dụng http://perso.tls.cena.fr/boubaker/distrib/mode-compile.el hoặc cái gì khác? – phils
@phils Tôi không cố ý sử dụng 'mode-compile.el' - tôi không có hồi ức nào khi cố gắng cài đặt nó và cũng không cần phải làm như vậy trực tiếp vì ngôn ngữ duy nhất tôi sử dụng được diễn giải (R, Perl) . Có lẽ nó là cái gì đó đã được cài đặt với ESS ...? Khi một kịch bản Perl nằm trong bộ đệm, chế độ chính là CPerl và chế độ nhỏ là Abbrev. Không có gì khác rõ ràng là khác. – SlowLearner