如何在 emacs 中将文件和编译命令关联起来?

如何在 emacs 中将文件和编译命令关联起来?

我发现自己经常做的一件事是每次重新启动 emacs 时,都必须重新输入编译命令:

make XXX -f path-to-makefile/makefile

有时我可能同时在做不同的事情,例如编辑 .tex 文档和编写代码,当我从一个任务切换到另一个任务时,我最终不得不重新输入编译命令。

有没有更好的方法可以做到这一点? 我可以以某种方式将文件与 emacs 默认知道的文件特定编译命令关联起来吗? 或者还有其他方法可以改善我的编译工作流程?

答案1

有时我可能同时在做不同的事情,例如编辑 .tex 文档和编写代码,当我从一个任务切换到另一个任务时,我最终不得不重新输入编译命令。

我编写了一些 elisp 来帮助解决这个问题,通过定义多个编译命令(在的意义上M-x),每个命令都与自己的缓冲区和 shell 命令相关联。

相关代码如下:https://gist.github.com/ffevotte/6130884

通过这种配置,我定义了 4 个编译命令,我将它们绑定到 <F5>-<F8>键,并且我经常使用类似以下的工作流程:

  • <f5>(或M-x compile5):关联到make -k
  • <f6>(或M-x compile6):关联到make -k test
  • <f7>(或M-x compile7):关联到doxygen

每次重启 emacs 时,我都必须重新输入编译命令

这是我很少做的事情(重新启动 Emacs)。但是,请看一下变量compile-command。来自文档(C-h v compile-command):

用于进行编译的最后一个 shell 命令;下一次编译的默认命令。

有时文件为该变量提供本地值很有用。

(但也请阅读有关将其用作文件局部变量的警告。

相关内容