golang笔记——IDE
可选方案有 Lite IDE\GoSublime\Visual Studio Code\Goclipse\Vim
1、Lite IDE
这是国人开发的开源且跨平台的 golang 专属IDE,也算是目前 golang 唯一的IDE了吧,是使用 qt 开发的,界面比较简陋。
下载地址:https://sourceforge.net/projects/liteide/
功能上还算是比较完善,自动格式化代码、编译、调试都不错。
可以通过 go_code 为 LiteIDE 增加智能提示。先下载 go_code 源代码,然后在 go_code 根目录下执行以下编译命令会生成 gocode.exe,把这个文件覆盖到 LiteIDE 安装目录下即可。此时使用系统包时,就会有智能提示了。但引入的第三方包仍然是没有智能提示的,可能要借助于 margo 了。
go build gocode.go autocompletecontext.go autocompletefile.go client.go config.go cursorcontext.go decl.go declcache.go formatters.go os_windows.go package.go ripper.go rpc.go scope.go server.go utils.go
2、GoSublime
基于 Sublime 的 Go 语言插件,界面美观,但要手动配置很多东西。
首先在 Sublime 中搜索并安装 gosublime 插件和 go build 插件,(请先安装好 Package Control),然后再通过 go get -u github.com/nsf/gocode 安装 gocode,再配置 golang 环境,如下:

然后好之后,通过 Ctrl + b 就可以编译了。
3、Visual Studio Code
微软推出的跨平台的编辑器,打开大文件速度很快,可以直接从官方下载。先安装 go 插件,和 Sublime Text 一样,通过 Ctrl + Shift + p 命令打开命令面板,输入 install 关键字选择 Extensions: Install Extension 项,然后等待插件列表加载好,搜索 go 然后选择安装即可,安装好之后重启 vsc 即可生效。
此处还需要安装一些工具,可能需要翻墙:
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-find-references
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/derekparker/delve/cmd/dlv
最终效果是可以智能提示,界面看上去也很舒服,但在配置编译时,输出带有乱码,暂时未找到解决方案,暂略。
配置编译可详见:http://www.open-open.com/lib/view/open1447995873509.html
4、Goclipse
基于 Eclipse 的插件。
5、VIM
配置繁琐,非 VIM 控的话,不推荐。后续完善,因为我也是VIM控。
通过 vundle 来管理vim插件,不然会烦死。安装命令:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
安装好之后,配置 vimrc 文件:
set nocompatible " be iMproved
filetype off " required! set rtp+=~/.vim/bundle/vundle/
call vundle#rc() " let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle' " My Bundles here:
"
" original repos on github
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
" vim-scripts repos
Bundle 'L9'
Bundle 'FuzzyFinder'
" non github repos
Bundle 'git://git.wincent.com/command-t.git'
" ... filetype plugin indent on " required!
"
" Brief help -- 此处后面都是vundle的使用命令
" :BundleList - list configured bundles
" :BundleInstall(!) - install(update) bundles
" :BundleSearch(!) foo - search(or refresh cache first) for foo
" :BundleClean(!) - confirm(or auto-approve) removal of unused bundles
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle command are not allowed.
然后添加 go 相关的插件:
Plugin 'fatih/vim-go'
Bundle 'dgryski/vim-godef'
Bundle 'Blackrush/vim-gocode'
Bundle 'majutsushi/tagbar'
配置好之后,在 vim 里执行命令 :BundleInstall 就可以安装已配置好的插件,当然你也可以使用 :BundleSearch 在线搜索其它的插件自己安装。
尤其是 vim-go,安装好这个插件之后,就可以在 vim 里输入 :GoInstallBinaries 命令来安装一些go的二进制工具包了,比如 goimport之类的,但是可能被墙。
还要安装自动补全插件:
Plugin 'Valloric/YouCompleteMe'
更多参考:http://studygolang.com/articles/1785
6、总结
总结,新手推荐 LiteIDE 直接上手开发,功能齐全,安装配置简单;其次推荐 GoSublime,小巧灵活,界面美观,还有大量其它插件可以扩展使用。个人比较喜欢使用 GoSublime 写代码(使用VIM模式,在sublime 的用户配置里加上 "ignored_packages":[] 就可以了),需要断点调试时使用 LiteIDE。
golang笔记——IDE的更多相关文章
- golang学习笔记11 golang要用jetbrain的golang这个IDE工具开发才好
golang学习笔记11 golang要用jetbrain的golang这个IDE工具开发才好 jetbrain家的全套ide都很好用,一定要dark背景风格才装B 从File-->s ...
- golang笔记1
golang笔记1 go代码是用包来组织的,每个包有一个或多个go文件组成,这些go文件文件放在一个文件夹中 每个源文件开始都用一个package声明,指明本源文件属于哪个包 pakage声明后紧跟这 ...
- Golang笔记(二)面向对象的设计
Golang笔记(二)面向对象的设计 Golang本质还是面向过程的语言,但它实现了一些OOP的特性,包括抽象.封装.继承和多态. 抽象和封装 Golang和C语言一样以struct为数据结构核心,不 ...
- Golang笔记(一)简洁的语言风格
Golang笔记(一)简洁的语言风格 概述 Golang继承了很多C语言的风格,寡人使用了十几年C语言,切换到Golang时上手很快,并且随着深入的使用,越来越喜欢这门语言.Golang最直观的感受是 ...
- 把vim当做golang的IDE
开始决定丢弃鼠标,所以准备用vim了. 那么在vim里面如何搭建golang环境呢? git盛行之下,搭建vim环境是如此简单. 而且vim搭建好了之后,基本上跟IDE没有差别. 高亮.自动补全.自动 ...
- Golang笔记集
学习Golang了, 下面分享我的, 还有我收集的Golang的学习资料 我的基础笔记地址: https://github.com/zhuchangwu/go-study-notes 其他参考: Go ...
- Golang笔记整理--One day
题外话: 很早就有整理学习笔记的想法,今天将想法付诸于行动,将Golang相关知识系统整理一遍,此分类为Golang学习笔记,最近开始学习这门语言的同学可以参考. 一 第一个Go程序: hello.g ...
- golang笔记——函数与方法
如果你遇到没有函数体的函数声明,表示该函数不是以Go实现的. package math func Sin(x float64) float //implemented in assembly lang ...
- golang笔记——包
1.包简述 GO本身没有项目的概念,只有包,包括可执行包和不可执行包,而不管什么包,都应该包含在 $GOPATH/src 目录下,GO命令和编译器会在 $GOPATH/src 目录下搜索相应的包.比如 ...
随机推荐
- 【poj1419】 Graph Coloring
http://poj.org/problem?id=1419 (题目链接) 题意 求一般图最大独立集. Solution 最大独立集=补图的最大团. 代码 // poj1419 #include< ...
- 【bzoj3240】 Noi2013—矩阵游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=3240 (题目链接) 题意$${F[1][1]=1}$$$${F[i][j]=a*F[i][j-1]+ ...
- 系统补丁更新导致MVC3.0.0升级到3.0.1的问题解决
在更新了系统补丁之后,会不知觉的将MVC3.0.0升级到MVC3.0.1的问题,解决的思路如下: 1.全部MVC引用使用NuGet进行包的管理. 2.单独把MVC库抽离出来,然后放在单独的项目文件夹, ...
- ECSHOP Inject PHPCode Into ecs_mail_templates table Via \admin\mail_template.php && \includes\cls_template.php Vul Tag_PHP_Code Execute Getshell
目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Ecshop后台模版编辑漏洞,黑客可以在获得了后台管理员的帐号密码之后,可以通过在 ...
- Node 一个简单的HttpServer+Mysql的后台
接收来自客户端的Post参数,通过Mysql查询,并以Json返回需要的信息,直接代码 createServer(); function createServer(){ //使用express创建HT ...
- Java 代码性能优化总结
前言 代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用, ...
- linux系统性能监视命令
preface as a linux engineer,you should know how to use these command of monitor system,so let's lear ...
- ionic中获取坐标方法
ionic中获取坐标的方法 1.首相需要执行命令: cordova plugin add cordova-plugin-geolocation2.然后块级注入配置bower文件引入ngCordova ...
- 点亮第一个LED灯
1.代码: #include <reg52.h> //<reg51.h> 包含52单片机寄存器库sbit led = P1^0; //只有地址可以被8整除的 才可以用s ...
- Hibernate学习总结
首先声明这是个坑爹的框架 属于ssh经典框架中的持久层框架,说白了就是管理数据库的. 下载地址:http://hibernate.org/orm/ 这里写了版本5.2,下载下来的基本不怎么会用,因为文 ...