我发现自己经常做的一件事是每次重新启动 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 命令;下一次编译的默认命令。
有时文件为该变量提供本地值很有用。
(但也请阅读有关将其用作文件局部变量的警告。