Emacs:为每个缓冲区设置编译命令

时间:2010-12-27 18:15:33

标签: emacs

所以,假设我有一个文件file.c和一个文件anothr.c。我想分别为每个文件设置编译命令,例如:gcc -Wall -O3 -o f file.cgcc -Wall -std=c99 -o a another.c。如何为该缓冲区设置gcc命令,以便每次打开它时,它都知道如何编译它?是否有// -*-指令或类似的东西?感谢。

2 个答案:

答案 0 :(得分:4)

是的,您可以在文件中使用该指令,还可以设置其他值。在第一或第二行尝试:

// -*- compile-command: "gcc -Wall -O3 -o f file.c" -*-

然后使用C-x v重新加载文件,以使设置生效。

我有时也会设置c-indent-level: 4; c-basic-offset: 4;之类的内容。

答案 1 :(得分:3)

根据file local variables所述的评论声明格式,您要查找的内容称为here,有时只称为“本地变量”。

除了Dirk's answer中给出的语法之外,您还可以在文件末尾写一个“局部变量”块:

/* Local Variables: */
/* compile-command:"gcc -Wall -O3 -o f file.c" */
/* End: */

如果您不想手动输入每个条目,可以使用交互式功能add-file-local-variable来帮助维护此列表。