C语言的开发环境

zvo*_*kov 10 command-line c ide editors

寻找有关为 C 开发设置方便且高效的开发环境的想法。我发现使用 Vim 进行 C 编辑非常有帮助,但我想获得更广泛的建议样本。

Eli*_*rey 12

  • Emacs / Vim / Eclipse /... - 我个人是 Emacs 用户。如果您发现控制序列让您的小指感到疲倦,只需将其设置为 Viper 模式即可。Emacs 很好地集成到了 unix 中,这使得从一个地方控制一切变得非常容易。Vim 在这方面也做得很好,但我发现 Elisp 是一种比 Vim Script 更强大的扩展语言。人们可以花几个小时讨论为 C 开发设置 Emacs 的所有方法。 已经提到了Flymake 模式,这是一个超级开始。我不熟悉 Eclipse,我发现它在我的屏幕上没有为代码留出足够的空间,我也不喜欢它的臃肿(Vim 用户会对 Emacs 说同样的话)。出于纯粹的审美原因,我也不公平地反对任何用 Java 编写的东西。

  • Ctags - 标记您的 C(或许多其他语言)函数,以便 Vim 或 Emacs 或其他任何可以在您的文件中进行一些超文本链接。假设你在四处闲逛,看到一个函数,你挠头说“那个又是做什么的?命名有点模糊。” Plink-plank-plunk,你可以直接跳到它的定义。

  • Cmake / Gnu-Autotools - Make 很棒,但在某些时候,您需要对事物进行一些抽象,以便您的项目可以在您无法测试的各种系统上自行构建。如果您只需要人们在 *nix 上构建您的代码,Autotools 很棒,但是,实际上,您无论如何都应该熟悉 Cmake。Cmake 团队在每个可能的配置中构建代码,并确保您不必经历头痛。如果您希望您的项目可以轻松上手购买其他项目,那么其中一种工具至关重要。

  • Git / Mercurial / Subversion /... - 您可能会花费数月时间研究版本控制软件,但您可能应该只使用 Git。它是可靠的,它是分布式的,@$!#%& Linux 内核用它来跟踪。如果它对 Linus 足够好,那么它也必须对你足够好。我也听说了 Mercurial 的好消息,显然 G**gle 使用了它们,所以它可能还不错。有些人似乎喜欢 Subversion 和 CVS 等等。我不喜欢它们,因为它们是整体式的,这对我来说非常不方便和限制。

  • Stumpwm / wmii / XMonad /... - 在某个时候你会意识到,你可以做的任何事情来保持你的工作流畅都会大大提高你的输出。防止大脑中断上下文的最佳方法之一是切换到平铺、键盘驱动的窗口管理器。我是StumpWM的个人粉丝,是窗口管理器的 Emacs。在即时可定制的 Common Lisp 过程中完全实现,您发现自己重复做的任何事情都可以被排除在函数中并绑定到命令。好东西。我对其他任何人都不太了解,但也许进一步的阐述最好留给另一个线程。尽可能多地使用键盘。

  • GDB - 我不熟悉其他调试器,但这似乎是事实上的标准。

  • Valgrind - 我不知道还有什么可以做得这么好。Valgrind 对于您想要进行的所有那些讨厌的分析/内存泄漏追踪至关重要。如果没有 Valgrind,您就无法使用 malloc/calloc 编写代码。


Chr*_*ver 2

我坚持使用 Vim 有一段时间了,了解 VIM 基础知识是值得的,因为你总会在某个地方找到一个只有这些基础知识的 UNIX 盒子,但我尝试了 Emacs 并且没有回头。Eclipse 是一个“现代”的替代方案,我的系统上有这三个!