【发布时间】:2012-04-10 03:06:26
【问题描述】:
我正在尝试设置 Emacs,以便当我在菜单中选择“Compile..”时,Emacs 会在命令行上执行“make filename”。我正在尝试类似:
(setq compile-command (concat "make " (file-name-sans-extension
buffer-file-name)))
但它不起作用 - 看起来 Emacs 正在为 *scratch* 缓冲区寻找一个文件名,但它没有。有谁知道如何解决这个问题?
谢谢。
更新:正如 Cheeso 所建议的,一个钩子解决了这个问题。这是一个适合我的版本:
(defun cur-file ()
(file-name-sans-extension
(file-name-nondirectory (buffer-file-name (current-buffer)))))
(add-hook 'c++-mode-hook
(lambda()
(set (make-local-variable 'compile-command)
(concat "make " (cur-file)))))
【问题讨论】:
-
n.b.您应该接受 Cheeso 的答案,或者发布您自己的解决方案作为答案并接受。
标签: emacs