在Emacs中定义默认编译命令

时间:2014-03-23 00:53:13

标签: emacs compilation

我有一个使用bash脚本调用cmakemake的项目。我已经使用 M-x compile成功地使用了来自Emacs的脚本,然后键入:

cd ../..; ./build.sh

在迷你缓冲区中。 (项目组织为top/src/various_source_foldersbuild.sh位于top/

我正在尝试定义directory variable以指定用于compile的默认命令。我在.dir-locals.el中尝试了以下(在编译命令中使用单引号或双引号):

((c++-mode
 (compile-command 'cd ../..\; ./build.sh')))

哪个没有错误,但 M-x compile仍默认为make -k

((c++-mode
  (set-variable 'compile-command' "cd ../../\; ./build.sh")))

其中提供了有关不安全变量的警告。即使我选择申请,compile仍默认为make -k

只需在* scratch *中使用 M-x eval-buffer和第二行((set variable ...)正确设置编译命令。

我可以/应该采用不同的方式吗?

1 个答案:

答案 0 :(得分:0)

找到答案here

语法中缺少两个句点和一些括号:

((c++-mode
  . ((compile-command . "cd ../../\; ./build.sh"))))