【问题标题】:Emacs: set compilation command per-bufferEmacs:为每个缓冲区设置编译命令
【发布时间】:2011-05-31 06:14:12
【问题描述】:

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

【问题讨论】:

    标签: emacs


    【解决方案1】:

    根据here 中描述的注释内声明格式,您要查找的内容称为file local variables,或者有时只是“局部变量”。

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      我有时也会在那里设置c-indent-level: 4; c-basic-offset: 4; 之类的东西。

      【讨论】:

      • C-x v 显然是指revert-buffer。对我来说不是默认绑定。
      • 可能与模式有关。我想我(几十年前)将编程模式设置为从文本模式派生。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      相关资源
      最近更新 更多