【问题标题】:How do I get emacs to change the compilation command on a per-buffer basis?如何让 emacs 以每个缓冲区为基础更改编译命令?
【发布时间】:2011-09-11 18:05:19
【问题描述】:

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

【问题讨论】:

    标签: emacs compilation conditional-compilation


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 如何让编译命令使用局部变量而不是提示我?当我输入 M-x compile RET 时,它会提示我输入编译命令并显示我之前输入的内容。
    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    相关资源
    最近更新 更多