Go语言目前已经在开发者中越发的流行,自然很多人都在寻找合适的IDE来实现代码语法高亮、自动补全以及其他编辑特性。

下面就几种常用的IDE进行对比介绍:

1. Sublime text

这个文本编辑器在开发者中较为普及,应该说sublime并非一个完全成熟的IDE,但是它具备很多语言的扩展插件,比如python、lua等,其中有一个插件GoSublime专门针对go语言,GoSublime提供了语法高亮、自动补全等功能,这些功能使得Sublime Text成为一很实用的Go IDE。

2. IntelliJ

IntelliJ IDE由Jetbrains提供,在java开发者中非常流行,其自带的Go插件支持语法高亮显示、代码补全、自动编译以及子库支持。这就使得你可以很方便地将项目拆分成多个包的同时,你可以一个单独的IDE中浏览它们。

它有一个非常好用的功能,插件使用了突出显示来显示未使用的变量或包(如下图示中的hdea变量目前是未使用的变量)。

3. LiteIDE

LiteIDE目前也是一个专门针对Golang的IDE了,我也在使用它,功能很全面,具备语法高亮、自动补全、自动编译、调试、包浏览及管理。

调试器在后台使用的gdb,这样你可以方便地打印变量值、查看当前堆栈信息。

4. Intype

Intype是仅windows下支持的文本编辑器,具备有限的语法高亮支持和特定的高亮显示设置。

5. Netbeans

Netbeans内建支持了大量的语言,同时具备Go插件从而可以同创建正常项目一样,创建go源文件,除了语法高亮以外,其Go插件并不支持其他特殊功能,如何使用IDE编译Go文件还不得知。

6. Eclipse

Eclipse可能是这里列出的最受欢迎的IDE。GoClipse插件在Eclipse中添加了IDE功能来支持Go。GoClipse提供了可配置的语法高亮显示、自动文档补全、自动编译以及最重要的实验调试支持。

7. TextMate

TextMate是一个Mac OS下的文本编辑器,可扩展它以突出显示Go代码,并提供源代码片段。

8. Komodo Edit

Komodo编辑器(或IDE)是来自ActiveState的开源代码编辑器。它基于Monzilla 7.0并且支持跨平台,支持多种语言,但是免费版的Komodo功能有限,它的golang插件komodo-go提供了基本的语法高亮、代码补全功能。

9. Zeus

Zeus是一个Windows下的编辑器,它直接支持Go语言,它使用ctags实现代码补全,但是可配置成使用Go语言,zeus支持代码折叠、自动缩进、代码导航、GDB调试。

总结:

下面两个表对上面讨论的几个IDE作了总结,这个表说明了插件或者包的许可情况、运行平台:

如下表说明了在不同的IDE中可用的功能项:

现在,Eclipse和IntelliJ插件都非常成熟,并且有丰富的功能来开发Go应用程序。更轻量级的选择如Sublime Text2、TextMate和LiteIDE,对语法高亮显示、预定义代码片段、代码自动补全和自动格式化(使用gofmt)都提供了很好的支持,Netbeans和Intype非常有限,它们只提供语法高亮显示。

这里没有讨论像vim和emacs,因为重点在于图形编辑器。如果您不喜欢本文中的解决方案,更倾向于使用基于文本的编辑器,那么我建议您查看一下Go如何集成vim和emacs。

常用的go语言IDE对比的更多相关文章

  1. 开发语言性能对比,C++、Java、Python、LUA、TCC

    一直想做开发语言性能对比,刚好有时间都做了给大家参考一下, 编译类:C++和Java表现还不错 脚本类:TCC脚本动态运行C语言,性能比其他脚本快好多... 想玩TCC的同学下载测试包,TCC目录下修 ...

  2. 编程语言 IDE 对比

    IDE是集成开发环境的英文缩写,所谓集成开发环境,就是将你在开发过程中所需要的工具或功能集成到了一起,比如代码编写.分析.编译.调试等功能,从而最大化地提高开发者的工作效率. 每种编程语言都有一些特定 ...

  3. 基于 Web 的 Go 语言 IDE - Wide 1.5.2 发布!

    这个版本由热心的开源贡献者加入了韩语支持,欢迎各位 gophers 加入到 Wide 的开源开发中.另外,这个版本还改进了 Playground,使其更稳定和易用.目前黑客派社区已经支持嵌入 Wide ...

  4. 基于 Web 的 Go 语言 IDE - Wide 1.5.1 发布!

    Wide 是一个基于 Web 的 Go 语言 IDE, 其目标不是彻底代替本地 IDE,而是做本地 IDE 很难做到的事情: 分享代码:类似 playground,但支持多文件并提供嵌入方式,在其他网 ...

  5. 爬虫常用Xpath和CSS3选择器对比

    爬虫常用Xpath和CSS3选择器对比 1. 简介 CSS是来配合HTML工作的,和Xpath对比起来,CSS选择器通常都比较短小,但是功能不够强大.CSS中的空白符' '和Xpath的'//'都表示 ...

  6. DeepLearning常用库简要介绍与对比

    网上近日流传一张DL相关库在Github上的受关注度对比(数据应该是2016/03/15左右统计的): 其中tensorflow,caffe,keras和Theano排名比较靠前. 今日组会报告上tj ...

  7. Snapde和常用的CSV文件编辑器对比

    Snapde,一个专门为编辑超大型数据量CSV文件而设计的单机版电子表格软件:它运行的速度非常快,反应非常灵敏. CSV是一种用逗号分隔列.回车分割行的文本文件,市面上常用的CSV编辑软件有:Snap ...

  8. Python与C语言基础对比(Python快速入门)

    代码较长,建议使用电脑阅读本文. 10分钟入门Python 本文中使用的是Python3 如果你曾经学过C语言,阅读此文,相信你能迅速发现这两种语言的异同,达到快速入门的目的.下面将开始介绍它们的异同 ...

  9. 常用的python开发工具对比

    一名优秀的Python开发人员都有一套好用的Python开发工具,好的开发工具可以使Python开发人员的工作更高效,以下是几款比较好用的Python开发工具,Python开发人员,尤其是初学者,可以 ...

随机推荐

  1. 设置dedecms标签 [field:global.autoindex/] 初始值{class递增}

    在{dede:arclist/}这个标签中有个[field:global.autoindex/],是从0开始自增,如果我们想自定义一个数值,比如自定义从2开始.那么就可以写成下面代码: [field: ...

  2. Maven学习总结(一)——pom.xml文件配置详解

    <build>标签:<plugins>给出构建过程中所用到的插件 <plugins> <plugin> <groupId>org.apach ...

  3. 在Java中字符串是通过引用传递的?

    这是一个经典的java问题.在stackoverflow上,许多类似的问题已经被问过了,但是许多回答是错误的或不完整的. 如果你不想深入思考的话,这个问题很简单.如果你想明白的更彻底,那么问题可能容易 ...

  4. 绕过安全狗等一些WAF收集

    绕过安全狗sql注入 http://demo.74cms.com/plus/ajax_common.php?act=hotwordquery=錦union+select+1,group_concat% ...

  5. dia无法输入中文的解决

    安装dia后无法输入中文,解决如下: 修改/usr/bin/dia #dia-normal --integrated "$@" dia-normal "$@"

  6. servlet的使用

    Servlet是比较基础的的客户端与服务器数据交互程序,通过HttpServletRequest请求和HttpServletResponse响应,可以基本实现web程序开发. 1.Servlet基础代 ...

  7. 从数据库中取出的数据,字段名为gb2312的 数据转码为utf8

    $pj = Pj::find()->where($map)->asArray()->one(); if(!empty($pj)) { foreach ($pj as $k=>$ ...

  8. Gradle Goodness: Changing Name of Default Build File

    Gradle uses the name build.gradle as the default name for a build file. If we write our build code i ...

  9. win10系统下多python版本部署

    说明:win10,已安装有python3.5.2,为使用新浪云应用(SAE)支持微信公众号后台开发(SAE的python运行环境使用的是2.7.9),需部署python2.7的版本以便本地编辑调试. ...

  10. GoBelieve,IMSDK android版开发环境问题

    GoBelieve,IMSDK android版开发环境问题 --- Mac下,android Studio 需要java1.7配置问题 On a mac, check your java versi ...