2011-04-27 52 views
15

我使用emacs作为我用C编程的主要IDE。我正在探索配置emacs以更多地作为IDE而不是简单的文本编辑器运行的方法。当然,我想要语法高亮,最好是一些代码完成。我也想要单独的缓冲区来允许shell命令和M-x编译。我希望它在访问C源文件时自动打开到这个多缓冲区窗体中,而不必单独启动每个缓冲区。我将主要用于Linux/BSD Unix开发,尽管我也在Mac OS X(又是Unix)和Windows(Windows 7 64bit)上编码。Emacs作为C编程IDE配置?

我探索了Phil Hagelberg(technomancy)发布的Emacs入门工具包,但它似乎非常倾向于动态语言和git的使用。我使用emacs主要用于在C中进行开发,并将VC用于mercurial。我也是一个相对新手,使emacs的配置相对令我畏惧。

我现在在玩CEDET和Emacs Code Browser(ECB)包,它更符合我想要的,但仍不完美。

有关将emacs定制为C编程IDE欢迎的建议。

+3

[这](http://stackoverflow.com/questions/63421/using-emacs-as-an-ide)相似 – mdec 2011-04-27 06:45:20

回答

24

自从我做C以来已经有一段时间了,但这里有几点。

  1. 使用flymake进行飞行误差分析。我已经将它用于Python和C,它非常棒。
  2. 语法高亮在C模式下默认存在。
  3. M-x编译适合make,所以如果你在你的设置中有一个Makefile,它应该可以正常工作(defuly flymake规则也使用这个)。这样

    check-syntax:

     gcc -Wall -o nul -S ${CHK_SOURCES} 
    

    规则将采取flymake的照顾。当您在子目录中编辑但是想要编译时,This非常有用。

  4. etags对跳转代码很有用。 GnuGlobal也似乎很受欢迎。
  5. 无法评论欧洲央行,因为我从来没有真正完成它的工作,当我做了什么,我从来没有发现它有用。我用autocomplete.el做完成,但它不是上下文敏感的。
  6. 没有迹象6.
  7. 内置的VC整合不是git这么热,所以我用magit代替。 mercurial应该有类似的问题。
  8. 这里有一些笔记关于设置您的indentation
  9. 您应该使用which function mode。这在过去为我节省了很多头痛。
  10. GUD的默认设置相当不错,但您需要一段时间并熟悉它们才能完全使用它的电源。
  11. 我大量使用org-capture将TBD移动到我的组织模式缓冲区中,以便我可以将它们作为TODO项目进行跟踪。这适用于所有语言。我还使用组织模式来为我的所有项目维护一份开发日记。

祝你好运。

+4

几个指针,好一个,哈哈哈哈! (哼,对不起)。 – Raveline 2011-04-27 07:39:49

+0

我并不打算,但最好的双关语是无意的... – 2011-04-27 08:07:55

+2

+1 which-function-mode,对我来说这是一个新的,谢谢! – momeara 2011-04-27 19:25:29

3

阅读excellent guide关于如何配置CEDET。我还建议您一起使用cscope和ECB。正如Noufal已经提到的自动完成和flymake非常有用。我也推荐你autopair mode

1

我没有试出来Emacs-IDE但似乎有用的,可以帮助你