C-从Emacs内部编译程序



编译emacs内部程序的最佳方法是什么?我目前正在使用C-x 3打开一个单独的缓冲区,并使用M-x eshell在其中运行Eshell,然后直接调用Make或Clang;大多数时候,我确实设置了一个makefile。

使用M-x compile与在Eshell内部运行CC_3与运行的汇编过程有任何优势吗?任何其他方法可以做什么,这些方法的优点/缺点是什么?

最简单的方法是使用emacs内置compile命令。M-x compile应该对您很好。然后,您可以编辑将运行的命令(默认情况下为make -k),然后按返回以运行编译。然后,Emacs将解析输出,如果发现任何错误,它们将链接到源文件,以便您可以在缓冲区中打开它们。

关于它的积极因素是:

  • 输出缓冲区的解析
  • 记忆在调用之间的编译命令
  • 编译输出以非选择的缓冲区显示,您可以快速编辑您正在处理的文件并修复任何愚蠢的错误。
  • M-nM-p滚动错误消息

这些功能大多数由compilation-minor-mode次要模式提供,尽管不是实际的编译命令和缓冲区。在eshell中运行汇编命令后,您可能会通过将次要模式设置为compilation-minor-mode获得类似的结果。

我个人更喜欢运行make或您使用的任何命令在多期内编译由于以下原因:

  • 它像 m-x compile ret 如果激活 compilation-shell-minor-mode m-p c-` ,…)。

  • ,但显然可以使用其他命令,例如

    mkdir build
    cd build
    ./configure --with-another-option
    

    当然可以从emacs做到这一点,但我更喜欢外壳这种东西的互动。

和imo, m-x compile的主要缺点是您正在编辑位于另一个目录中的文件 Makefile然后您必须在正确的目录,然后 m-x recompile。但是如果你愿意,请说 make clean && make,然后您必须切换到正确的目录,这样做,切换。

但是 term.el有自己的缺点,它使用了不可便利的骇客跟踪当前目录的方法。

相关内容

  • 没有找到相关文章

最新更新