什么是C开发的最佳IDE /为什么在IDE上使用Emacs?

时间:2009-03-06 10:43:07

标签: c ide

根据我以前的一个问题,我正在汲取我的C技能。

我的问题是,人们用什么来开发C?

很多人使用Emacs,并且多年来都这样做了,但是学习emacs比使用像Geany或KDevelop这样的IDE 更好吗?

还有兴趣听听那些仍在使用emacs ,以及为什么他们使用而不是其他应用?

请注意,我只对免费的IDE /编辑感兴趣。

修改

感谢您发布回答我的一些问题的链接,但我想我真正想知道的是:

是否学习使用emacs / vim进行编辑以及使用gcc-toolchain进行编译/调试是否值得,而不仅仅是使用IDE,为什么?

人们不迁移到IDE的原因是什么?

有没有人从以终端为中心的开发转向IDE开发,为什么要移动?

10 个答案:

答案 0 :(得分:62)

我开始使用IDE,不管是不是微软。然后,在很久以前使用QNX时,我被迫使用文本编辑器+编译器/链接器。现在我更喜欢这个简单的组合 - 一个语法高亮的编辑器+ C编译器和链接器cli + make - 到任何IDE,即使环境允许它们。

原因是,对我来说:

  1. 到处都是。如果你用C编程,你就有了编译器,通常你可以自己编辑。我做的第一件事 - 我在Windows上使用Linux或Notepad ++。我会选择vi,但GUI编辑器提供了更好的字体,这对于整天查看代码非常重要

  2. 您可以在需要时通过ssh远程编程。而且它有时能帮助我们进入目标并在那里做一些快速的事情

  3. 让我接近CLI,最好是UNIX / Linux CLI。因此,所有命令都在我的指尖,当我需要它们时,我不必去阅读参考书。 UNIX CLI可以做IDE经常无法做到的事情 - 因为他们的开发人员认为你不需要它们

  4. 最重要的是,它非常像在原始代码中查看Matrix。我操作文件,所以我不得不让它们易于管理。我手动在代码中找到了东西,这使我保持简单和有条理。我明确地进行了Config Management,所以我知道我何时同步以及如何同步。我知道我的Makefiles因为我写了它们,而且他们只做我告诉他们的事情

    (如果你想知道它是否适用于“真正的大项目” - 它确实有效,而且项目越大,我获得的表现越多)

  5. 当人们要求我查看他们的代码时,我不必学习他们使用的IDE

答案 1 :(得分:34)

对于我的大多数项目,我已经从终端文本编辑器+ make环境转移到了Eclipse。从C和C ++扩展到Java和Python,我所使用的语言很少。

原因只是生产力。随着其他事情变得更加重要,我无法花费时间和精力将所有项目“保持在我的脑海中”。

使用“硬核”方法(终端)有一些好处 - 比如你自己和代码之间有一层薄得多的层,这样当你在项目内部时,你可以提高工作效率一切都在你的头顶。但是,当你在其他地方需要你的思想时,我认为不可能仅仅因为它本身而捍卫这种工作方式。

通常,当您使用命令行工具时,您将经常需要解决许多样板问题,这些问题会使您无法提高工作效率。您需要详细了解这些工具才能充分发挥其潜力。维护项目也需要付出更多努力。重构将导致make文件等的更新

总结一下:如果您只处理一个或两个项目,最好是全职而没有太多干扰,“基于终端的编码”可以比完整的IDE更高效。但是,如果您需要将精力投入到更重要的事情上,那么IDE绝对是保持工作效率的必由之路。

相应地做出选择。

答案 2 :(得分:15)

Emacs 是一个IDE。

编辑:好的,我会详细说明。什么是IDE?

作为一个起点,让我们扩展首字母缩略词:Integrated Development Environment。为了分析这一点,我从头开始。

一般来说,环境是围绕着观点的世界的一部分。在这种情况下,它是我们在显示器上看到的(也许是从我们的扬声器中听到的)并通过我们的键盘(也许是鼠标)进行操作。

开发是我们想要在这个环境中做的,它的目的,如果你想要的话。我们使用环境来开发软件。这定义了我们需要的子部分:编辑器,REPL的接口,resp。编译器,调试器的接口以及对在线文档的访问(此列表可能并非详尽无遗)。

集成意味着环境的所有部分都以某种方式处于统一的表面之下。在IDE中,我们可以以最少的切换访问和使用不同的子部分;我们不必离开我们定义的环境。这种集成使不同的子部分更好地交互。例如,编辑器可以知道我们写的语言,并给我们符号自动完成,跳转到定义,自动缩进,语法高亮等。它可以从编译器获取信息,自动跳转到错误,以及突出他们。在大多数情况下,如果不是所有IDE,编辑器自然是开发过程的核心。

Emacs完成所有这一切,它使用各种语言和任务来完成它,并且它具有卓越性,因为无论用户何时错过任何东西,它都可以无缝扩展。

反例:您可以使用记事本,通过Firefox和XPdf访问文档,以及从shell引导编译器和调试器。这将是一个开发环境,但它不会集成

答案 3 :(得分:10)

我已经非常成功地使用了Eclipse和CDT插件。

答案 4 :(得分:6)

如果Emacs中有文本编辑器会更好......: - )

答案 5 :(得分:5)

使用Code::Blocks。它拥有您需要的一切和非常干净的GUI。

答案 6 :(得分:5)

Netbeans有great C and C++ support。有些人抱怨它臃肿而缓慢,但我几乎专门用于个人项目,并喜欢它。代码辅助功能是我见过的最好的功能之一。

答案 7 :(得分:3)

为什么没有人提到Bloodshed Devc++?有一段时间没有使用它,但我学习了c / c ++。与MS Visual c ++非常相似。

答案 8 :(得分:1)

如果您正在寻找一个免费,美观,跨平台的编辑器,请尝试Komodo Edit。它没有Komodo IDE那么强大,但是它不是免费的。请参阅feature chart

另一个免费的,可扩展的编辑器是jEdit。跨平台,因为它是100%纯Java。不是世界上最快的IDE,但对于Java来说实际上非常快,非常灵活,但不是很好看。

两者都具有非常复杂的代码折叠,语法高亮(适用于您能想到的所有语言!),并且非常灵活,可根据您的个人需求进行配置。 jEdit是BTW非常容易扩展,以添加你可能需要的任何功能(它有一个超简单的脚本语言,看起来像Java,但实际上是“脚本化”)。

答案 9 :(得分:-1)

如果您使用的是Windows,那么完全没问题:获取Visual C ++ Express。