从Emacs中编译程序?

haz*_*ziz 3 c emacs compilation clang eshell

在emacs中编译程序的最佳方法是什么?我正在打开一个单独的缓冲区,C-x 3并在其中运行eshell,M-x eshell然后直接调用make或clang; 大部分时间我都设置了Makefile.

使用M-x compilevs在eshell中运行make 运行编译过程是否有任何优势?还有其他任何方法吗?这些方法的优点/缺点是什么?

Wil*_*ill 9

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

关于它的积极因素是:

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

大多数这些功能都是由compilation-minor-mode次要模式提供的,但不是实际的编译命令和缓冲区.一旦运行了编译命令,eshell通过将次要模式设置为,可能会得到类似的结果compilation-minor-mode.