Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是C开发的最佳IDE/为什么使用Emacs而不是IDE?_C_Ide - Fatal编程技术网

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

什么是C开发的最佳IDE/为什么使用Emacs而不是IDE?,c,ide,C,Ide,因此,根据我之前的一个问题,我正在复习我的C语言技能 我的问题是,人们用什么来开发C? 很多人使用Emacs,并且已经这么做了很多年,但是学习Emacs是否比仅仅使用诸如Geany或KDevelop之类的IDE更好 还想听听那些仍在使用emacs的人的意见,以及他们为什么在其他应用程序中使用emacs 请注意,我只对免费IDE/编辑器感兴趣 编辑: 感谢您发布链接,回答了我的一些问题,但我想我真正想知道的是: 学习使用emacs/vim进行编辑和使用gcc工具链编译/调试是否值得,而不仅仅是使用

因此,根据我之前的一个问题,我正在复习我的C语言技能

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

很多人使用Emacs,并且已经这么做了很多年,但是学习Emacs是否比仅仅使用诸如Geany或KDevelop之类的IDE更好

还想听听那些仍在使用emacs的人的意见,以及他们为什么在其他应用程序中使用emacs

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

编辑:

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

学习使用emacs/vim进行编辑和使用gcc工具链编译/调试是否值得,而不仅仅是使用IDE,为什么

不迁移到IDE的原因是什么


有人从以终端为中心的开发转向IDE开发了吗?他们为什么要这样做?

Emacs如果有一个文本编辑器就更好了…:-)

使用。它拥有您所需的一切和一个非常干净的GUI。

如果您正在寻找一个免费、美观、跨平台的编辑器,请尝试。它没有Komodo IDE强大,但是它不是免费的。看

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


它们都有非常复杂的代码折叠、语法突出显示(适用于您能想到的所有语言!),并且在配置它以满足您的个人需求方面非常灵活。JeDIT是非常容易扩展的,以添加您可能需要的任何特性(它有一个超简单的脚本语言,它看起来像java,但实际上是“脚本”)。< /P> < P>如果您在Windows上,那么它是完全不需要考虑的:得到VisualC++快照。< /P> < P>我已经成功地使用了Eclipse和CDT插件。 编辑:好的,我会详细说明。什么是IDE

作为一个起点,让我们扩展首字母缩略词:集成开发环境。为了分析这一点,我从结尾开始

一般来说,环境是围绕着观点的世界的一部分。在本例中,它是我们在显示器上看到的(可能是从扬声器听到的)并通过键盘(可能还有鼠标)进行操作的内容

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

集成意味着环境的所有部分都在一个统一的表面下。在IDE中,我们可以通过最少的切换访问和使用不同的子部分;我们不必离开我们定义的环境。这种集成可以让不同的子部分更好地交互。例如,编辑器可以知道我们用什么语言编写,并为我们提供符号自动补全、跳转到定义、自动缩进、语法突出显示等功能。。它可以从编译器获取信息,自动跳转到错误,并突出显示它们。在大多数IDE(如果不是所有IDE的话)中,编辑器自然是开发过程的核心

Emacs做到了这一切,它使用了广泛的语言和任务,而且做得非常出色,因为无论用户在哪里错过任何东西,它都可以无缝扩展


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

我从使用IDE开始,不管是否使用Microsoft。然后,很久以前在QNX上工作时,我被迫使用文本编辑器+编译器/链接器。现在我更喜欢这种简单的组合——语法突出显示编辑器+C编译器和链接器cli+make——而不是任何IDE,即使环境允许它们

对我来说,原因是:

  • 到处都是。如果你用C语言编程,你就有了编译器,而且通常你可以自己得到一个编辑器。我做的第一件事——我在Linux或Windows上的记事本++上安装了nedit。我会选择vi,但GUI编辑器提供了更好的字体,这在您整天查看代码时非常重要

  • 您可以在需要时通过ssh远程编程。有时候,能够用ssh连接到目标并在那里快速完成一些事情确实会有很大帮助

  • 它使我更接近CLI,最好是UNIX/Linux CLI。所以所有的命令都在我的指尖上,当我需要它们时,我不必去读参考书。UNIX CLI可以做IDE通常做不到的事情——因为他们的开发人员认为您不需要它们

  • 最重要的是,这非常像在原始代码中看到矩阵。我操作文件,所以我不得不让它们易于管理。我正在手动查找代码中的内容,这使我保持代码的简单性和条理性。我明确地进行配置管理,因此我知道何时同步以及如何同步。我知道我的makefile,因为我写了它们,它们只做我告诉它们的事情

    (如果你想知道这是否适用于“真正大的项目”——它确实有效,而且项目越大,我获得的绩效就越高)

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


  • 对于我的大多数项目,我已经从终端文本编辑器+make环境迁移到Eclipse。跨越C和C++,到java和python,以命名我目前正在使用的几种语言。 原因仅仅是生产力。由于其他事情变得越来越重要,我无法花时间和精力把所有项目都“记在脑子里”

    美国有很多好处