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

根据我之前的一个问题,我正在磨练我的C技能。

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

许多人使用Emacs,而且已经这么做了很多年,但是学习emacs比只使用像Geany或KDevelop这样的IDE更好吗?

也有兴趣听到仍然使用emacs的人 ,以及为什么他们使用它的其他应用程序?

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

编辑:

感谢张贴链接回答我的一些问题,但我想我真的想知道的是:

无论是学习使用emacs / vim进行编辑,还是使用gcc-toolchain进行编译/debugging,都是值得的,而不仅仅是使用IDE,为什么?

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

有没有人从terminal为中心发展到IDE开发,为什么他们搬家?

我开始使用IDE,微软或不。 然后,在QNX工作很久以前,我不得不做一个文本编辑器+编译器/链接器。 现在,我更喜欢这种简单的组合 – 语法高亮编辑器+ C编译器和链接器cli + make – 即使环境允许,也可以用于任何IDE。

原因是,对我来说:

  1. 它无处不在。 如果你用C语言编程,你有编译器,通常你可以自己编辑。 我做的第一件事 – 我在Linux上使用nedit,在Windows上使用Notepad ++。 我会用vi去,但是GUI编辑器提供了更好的字体,当你整天看代码时,这是很重要的

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

  3. 它使我接近CLI,最好是UNIX / Linux CLI。 所以所有的命令都在我的指尖,当我需要他们时,我不必去阅读参考书。 而UNIX CLI可以做的事情往往不会 – 因为他们的开发人员不认为你需要它们

  4. 最重要的是,它非常像在原始代码中看到matrix。 我操作文件,所以我被迫保持可pipe理性。 我手动在我的代码中find东西,这使我保持简单和有组织。 我明确地做了configurationpipe理,所以我知道我什么时候同步和如何。 我知道我的Makefiles是因为我写的,他们只做我告诉他们的

    (如果你想知道这是否在“真正的大项目”中起作用 – 它确实起作用,而且项目越大,获得的性能就越好)

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

我已经从一个terminal文本编辑器+ make环境转移到了我的大部分项目的Eclipse。 从C和C ++跨越到Java和Python来命名我正在使用的几种语言。

原因就是生产力。 其他事情变得越来越重要,我无法花时间和精力把所有的项目都放在我的脑海里。

使用“核心”方法(terminal)有好处,例如你和代码之间的层次要薄得多,当你全部在项目“内部”时,所有东西都可以让你更有效率在你头顶上。 但是我不认为有可能为了自己的利益而保护这种工作方式,而在别处需要你的思想。

通常当你使用命令行工具时,你将经常需要解决大量的样板问题,这将会使你无法工作。 您需要详细了解这些工具以充分发挥其潜力。 另外维护一个项目将需要更多的努力。 重构将导致make-files等的更新

总结一下:如果你只在一个或两个项目上工作,最好全职工作,没有太多分心,“基于terminal的编码”比完整的IDE更有效率。 但是,如果您需要花更多的精力在更重要的东西上,那么IDE就是保持生产力的一种方式。

做出相应的select。

Emacs 一个IDE。

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

作为一个起点,我们来扩展缩写:集成开发环境。 为了分析这一点,我从头开始。

一般而言, 环境是围绕观点的世界的一部分。 在这种情况下,这是我们在我们的显示器上看到的(也许听到我们的扬声器),并通过我们的键盘(也许是一个鼠标)操纵。

发展就是我们想要在这个环境中做的事情,它的目的,如果你愿意的话。 我们使用环境来开发软件。 这定义了我们需要的子部分:编辑器,REPL的接口, 编译器,debugging器的接口以及对在线文档的访问(该列表可能并不完整)。

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

Emacs可以完成所有这些工作,它可以处理各种各样的语言和任务,而且它的function非常出色,因为用户无论在什么地方都可以无缝地扩展它。

反例:你可以使用记事本,通过Firefox和XPdf访问文档,引导编译器和debugging器。 这将是一个开发环境,但不会被整合

我已经使用Eclipse与CDT插件相当成功。

Emacs会更好,如果它有一个文本编辑器… 🙂

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

Netbeans有很好的C和C ++支持 。 有些人抱怨说,它臃肿而缓慢,但我几乎完全用它来做个人项目,并且喜欢它。 代码辅助function是我见过的最好的之一。

为什么没有人提到Bloodshed Devc ++? 没用过一段时间,但我学到了C / C ++。 非常类似于MS Visual c ++。

如果你正在寻找一个免费的,漂亮的,跨平台的编辑器,试试科莫多编辑 。 它不像Komodo IDE那么强大,但这不是免费的。 见function图表 。

另一个免费的,可扩展的编辑器是jEdit 。 跨平台,因为它是100%纯Java。 不是地球上最快的IDE,但是对于Java而言,实际上它非常快速,非常灵活,虽然不是很好看。

两者都有非常复杂的代码折叠,语法突出显示(对于所有您能想到的语言!),并且为您个人需求进行configuration非常灵活。 jEdit是BTW非常容易扩展,以添加您可能需要的任何function(它有一个超简单的脚本语言,看起来像Java,但实际上是“脚本”)。

如果你在Windows上,那么这是一个完全没有道理的:获取Visual C ++ Express。