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 目录下搜索相应的包.比如 ...
随机推荐
- 09-FZ6R 白色
- 根据html容器大小和显示文字多少调节字体大小
在做html相关的东西的时候经常会遇到这样的问题,容器大小(长x宽)固定,容器包含内容(特指文字)多少不固定,这个时候就让人很苦恼了,将字体大小设置成多少才合适呢?下面看看我的解决思路: 首先要知道网 ...
- 360doc的文章不能复制的解决办法
按F12打开控制台,执行: document.body.oncopy=null;
- Python3 学习笔记------迭代器
python 迭代器 要理解python迭代器(iterator),先要理解两个概念:Iterable(可迭代对象).Iterator(迭代器) 先来help()一下Iterator: >> ...
- PhyLab2.0设计分析阶段任务大纲(α)
任务概述 由于接手软剑攻城队的PhyLab项目,省去了用户需求分析.团队编码规范.用户界面原型设计和后端逻辑设计的大部分环节,因此前期的主要任务落在了用户使用反馈.功能优化增改方向.用户体验优化以及源 ...
- 用面对对象方式定tab标签
一些公共的底层的JS方法 var GLOBAL = {}; GLOBAL.namespace = function (str) { var arr = str.split('.'), o = GLOB ...
- java内存配置
使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Javaheap space 在JVM中如果98%的时间是用于GC且可用的 Heap siz ...
- 兼容ie6及一下版本的自适应
<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" /> <meta ...
- php返回json数据中文显示的问题
PHP5.4版本,已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE.加上这个选项后,就不会自动把中文编码了. echo json_encode("厦门" ...
- 基于centOS6.7搭建LAMP(httpd-2.4.18+mysql-5.5.47+php-5.6.16)环境
首先确保系统可以联网.设置IP地址以及虚拟机安装linux在此略过.本文采用centos6.7 64位minimal版.php5.6.16.httpd-2.4.18.mysql-5.5.47版搭建la ...