如何让emacs在每个缓冲区的基础上更改编译命令?

时间:2011-09-11 18:05:20

标签: emacs compilation conditional-compilation

假设我有两个代码文件,一个是小型测试脚本,另一个是我的主要代码段(都是c ++代码文件)。我希望emacs为每个命令使用不同的编译命令(例如,“make test_script”为一个,“make release”为另一个)。最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以将compile-command局部变量用于缓冲区。例如,在一个C ++源代码中:

// Local Variables:
// compile-command: "make release"
// End:

您可以在其他源代码中更改它以使用其他编译方式。要触发编译,可以使用 M-x 编译 RET

根据您的问题,如果您不希望compile询问您,可以添加以下内容:

// Local Variables:
// compilation-read-command: nil
// compile-command: "make release"
// End:

但是,当您加载此变量存在风险的文件时,将会收到警告。您可以接受它,但请注意,这意味着当您使用未知源的加载文件进行编译时,这会导致任意命令被错误运行(也就是说,如果您在某处获得具有这些命令的文件,并且您只是接受它们,当你编译文件时,将执行你自己的任何程序而不先问你。)