Linux 上的最佳 C/C++ IDE
================================================================================
"一个真正的程序员是不用IDE（译者注：集成开发环境）的，他们都是用带着某某插件的文本编辑器来写代码。"我们总能在某些地方听到此类观点。然而，尽管越来越多的人同意这样的观点，但是一个IDE仍然非常有用，它设置简单，使用起来也很方便，因此不能比这样更合适编写一个项目了。所以鉴于这点，在这里我想给大家列一份在Linux平台上比较好的C/C++ IDE清单。为什么特地说C/C++呢？因为C语言是我最喜欢的编程语言，而且我们总要找个切入点来开始。另外要注意的是，通常有很多种编写C代码的方法，所以为了消减清单的篇幅，我只选择了"真正好用的IDE"，而不是诸如Gedit或Vim这种注入[插件][1]的文本编辑器。并不是说这些编辑器不好，只是如果我将文本编辑器包含进去那这份清单就将永无止境了。

### 1. Code::Blocks ###

![](https://farm8.staticflickr.com/7520/16089880989_10173db27b_c.jpg)

用我个人的最爱来开篇，[Code::Blocks][2]是一款简单快速的专有C/C++ IDE。就像任何一款强大的IDE一样, 它集成了语法高亮、书签功能、自动补全功能、项目管理和一个调试器。它最闪亮的地方在于它简单的插件系统，里面添加了不可缺少的工具，像Valgrind和CppCheck，还有不太重要的比如像俄罗斯方块这样的小游戏。但是我特别喜欢它的理由是它连贯方便的快捷键设定和大量的却感受不到拥挤的选项设置。

### 2. Eclipse ###

![](https://farm8.staticflickr.com/7522/16276001255_66235a0a69_c.jpg)

我知道我只说"真正好用的IDE"而不是带着插件的文本编辑器，但是，[Eclipse][3]的确是一款"真正好用的IDE"，只是Eclipse需要一些[插件][4]（或经过一些改装）来编写C程序，所以严格来说我无法反驳我自己。而且，做一份IDE清单不提到Eclipse这个“巨人”是不可能的事情。无论喜欢它与否，Eclipse仍然是一款强大的Java编程工具。这里要感谢[CDT 项目][5]，让Eclipse编写C程序变得可能。你同样可以体验到Eclipse的强大功能，包括它的一些传统功能特点比如自动补全、代码大纲、代码生成器和先进的重构功能。照我话说，它的不足之处在于它不如Code::Blocks那么轻量级，它仍然很臃肿，要花费很多时间去载入。但是如果你的电脑可以驾驭它，或者你是个忠实的Eclipse粉，那么它一定是你的不二选择。

### 3. Geany ###

![](https://farm9.staticflickr.com/8573/16088461968_c6a6c9e49a_c.jpg)

牺牲了很多特色功能但是增加了很多灵活性，[Geany][6]就是这样一款与Eclipse对立的软件。但是对于它所缺乏的地方（比如说没有调试器）, Geany用一些漂亮小巧的特色功能弥补了它们：一个可以做笔记的区域、基于模板创作、代码大纲、自定义快捷键和插件管理。相比于现在的IDE，Geany仍然是一款作用广泛的文本编辑器，然而，因为它的功能亮点和它的界面设计，所以我把它放在这份列表里。

### 4. MonoDevelop ###

![](https://farm8.staticflickr.com/7515/16275175052_61487480ce_c.jpg)

这又是这份列表里的一个“巨人级”工具，[MonoDevelop][7]那无与伦比的体验来源于它的外表和界面。我个人非常喜爱它的项目管理体系和它的一体化版本控制系统。插件系统同样漂亮地让人震惊。但是由于一些原因，所有的设置和对所有编程语言的支持对于我来说让我感觉有点“资源过剩”了。它仍然是我在过去经常使用的伟大工具，但不是我在单单处理C语言时的第一选择。

### 5. Anjuta ###

![](https://farm8.staticflickr.com/7514/16088462018_7ee6e5b433_c.jpg)

它身上有着强烈的“GNOME即视感”，[Anjuta][8]的外观很具争议。我倾向于把它看作是带着调试器的Geany升级版，但是它的界面实际上要复杂得多。我确实很享受能在项目、文件夹和代码大纲视图之间来回切换的标签系统，我本想用诸如更多的快捷方法来移动文件，然而，这是一个很好的提供了显著编译功能和构建选项的工具，它能够支持哪些很有特点的需求。

### 6. Komodo Edit ###

![](https://farm8.staticflickr.com/7502/16088462028_81d1114c84_c.jpg)

我不是非常熟悉[Komodo Edit][9]，但是在试用了一段时间之后，我被它很多很多的优点给惊喜到了。首先，基于标签的导航功能有很强的可预见性。其次它奇特的代码大纲让我想到了Sublime Text。此外，它的宏系统和文件比较器使得Komodo Edit非常实用。它的插件库让它几乎是完美的，说“几乎”是因为在其它IDE里我的确找不到能与之相媲美的快捷方法了。而且我们能享受到更多特别的C/C++工具，这往往是普通IDE的不足之处。然而，Komodo Edit就能做到。

### 7. NetBeans ###

![](https://farm8.staticflickr.com/7569/16089881229_98beb0fce3_c.jpg)

就好像Eclipse一样，这又是一款不得不提的“巨人级”软件。拥有的功能包括通过标签进行导航、项目管理、代码大纲、更改历史追踪和大量工具，[NetBeans][10]可能是最完整的IDE了，我能用半页来列出它所有让人震惊的特色功能。但是这同时也很容易地向你透露了它的主要缺点，它太臃肿了。比起它的强大，我更喜欢基于插件的软件，因为我觉得不太会有人为了一个同样的项目同时需要Git和Mercurial相结合来工作，我是不是很疯狂？但是如果你有耐心去掌握它所有的选项，那你差不多无论到哪里都是IDE大师了。

### 8. KDevelop ###

![](https://farm8.staticflickr.com/7519/15653583824_e412f2ab1f_c.jpg)

说到这，肯定照顾到所有的KDE粉丝，[KDevelop][11]会是你希望的答案。它拥有许多配置选项，如果你设法去征服KDevelop，那它就是你的。你们说我肤浅，但是我真的从来没有深入过除它界面以外的层次了，对于我来说编辑器本身就携带着大量的导航选项和可定制的快捷键简直是一个再糟糕不过的事了。它的调试器也是相当高级，要去练习掌握。然而，这样的耐心是有回报的，就是能领会到这款灵活的IDE的全部能力，并且由于它令人吃惊的嵌入式文件编制，你会给予它一种特殊的信任。

### 9. CodeLite ###

![](https://farm9.staticflickr.com/8594/16250066446_b5f654e63f_c.jpg)

留在最后的不代表是最差的，[CodeLite][12]展现给你一种传统的编程规则却仍然能让你从它身上那特有的感觉上有所收获，即使它的界面一开始的确让我想到了Code::Blocks和Anjuta，只是不包括大量的插件库。无论你想要比较文件、插入一条版权块、定义缩略语或者用Git来工作，总有一款插件适合你。如果我不得不挑点毛病，我想说它缺乏一些符合我口味的导航快捷键，但这是真的。

最后，我希望这份清单能让你给自己最喜欢的语言探索到更多新的IDE。虽然Code::Blocks仍然是我的最爱，不过它有一些很强大的对手。当然我们也可以远离Linux上的IDE，而用文本编辑器去编写C/C++代码。所以如果你有什么其它的建议想法，在评论中让我们获悉。或者如果你想要我再说说关于一些其它语言的IDE，也可以评论里提出。

--------------------------------------------------------------------------------

via: http://xmodulo.com/good-ide-for-c-cpp-linux.html

作者：[Adrien Brochard][a]
译者：[ZTinoZ](https://github.com/ZTinoZ)
校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

[a]:http://xmodulo.com/author/adrien
[1]:http://xmodulo.com/turn-vim-full-fledged-ide.html
[2]:http://www.codeblocks.org/
[3]:https://eclipse.org/
[4]:http://xmodulo.com/how-to-set-up-c-cpp-development-environment-in-eclipse.html
[5]:https://eclipse.org/cdt/
[6]:http://www.geany.org/
[7]:http://www.monodevelop.com/
[8]:http://anjuta.org/
[9]:http://komodoide.com/komodo-edit/
[10]:https://netbeans.org/
[11]:https://www.kdevelop.org/
[12]:http://codelite.org/