2011-09-11 33 views
0

假设我有两个代码文件,一个是一个小测试脚本,另一个是我的主要代码片段(都是C++代码文件)。我希望emacs为它们中的每一个使用不同的编译命令(例如“make test_script”为一个,“make release”为另一个)。什么是最好的方法来做到这一点?如何让emacs在每个缓冲区的基础上更改编译命令?

回答

2

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

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

并且您可以更改其他源代码以使用其他编译方式。要触发该编译,可以使用M-x compile RET

根据您的问题,如果你不想compile问你,你可以添加以下内容:

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

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

+0

如何获得编译命令使用本地变量而不是提示我?当我用M-x编译RET时,它会提示我输入一个编译命令,并显示我之前输入的内容。 – rv1

相关问题