使用Sublime text 3打造一个小巧但强大的Go语言开发IDE

简介: 使用Sublime text 3打造一个小巧但强大的Go语言开发IDE

使用Sublime text 3打造一个小巧但强大的Go语言开发IDE

最近在学习GO语言,网上找了一下GO语言的IDE,发现GO语言目前没有一个专业的IDE,都是一些各种插件来实现的,由于go的特性:

  • 开发过程中需要设置GOPATH
  • 用到第三方的包又要使用go get
  • 运行的时候要用go run
  • 打包的要使用go install
  • 交叉编译的时候还要配置GOARCH GOOS go build

试了很多朋友分享的工具都很不好用,试用了一下Jetbrains的Goland Early build version,发现很多Bug,没有交叉编译,无法go get,并不能满足开发、打包、分发的需求,不过Goland的代码提示还是特别棒的,希望以后正式版能够做的更好。

打造自己的Go语言开发IDE

好了废话不多说,来开始动手打造一个强大的Go语言开发IDE,强大到什么程度,自己体会吧:

  • 支持自动配置GOPATH
  • 支持简单的go run
  • 支持go get
  • 支持go install
  • 当然也支持 “交叉编译”
  • 而且还支持go test go clean

下载并安装 sublime text 3

sublime text 是一个小巧的文本编辑工具,支持windows、linux、macOS,官方下载地址点击sublime text.
下载好了就自行安装,这里大家应该不会有什么问题。

安装Package control

Package control 是一个sublime text 的插件管理工具,由于sublime text 自带python环境,Package control可以直接使用如下python脚本自动安装(建议自行去官网找脚本,以免脚本更新,无法安装):

为了方便查看,我在脚本里的分号;后面添加了换行符,但不影响使用。

import urllib.request,os,hashlib; 
h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; 
pf = 'Package Control.sublime-package'; 
ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); 
by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); 
dh = hashlib.sha256(by).hexdigest(); 
print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) 
if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

官方安装地址Package control installation,进去之后就会看到以上脚本。

当然Package control也有手动安装方式:

  • 点击 Preferences > Browse Packages… 菜单
  • 打开 Installed Packages/ 文件夹
  • 下载 Package Control.sublime-package
     并将下载好的文件复制到 Installed Packages/ 目录
  • 重启 Sublime Text

自动安装的也要重启一下才能生效。

安装Go语言官方提供的Golang build

  • 点击 Preferences > Package control 菜单(MAC快捷键 shift + command + p)
  • 在弹出的输入框输入install 选择Package control:install package
  • 然后输入Golang build 选择Golang build 安装

安装好之后点击 Preferences Preferences > Package Setting > Golang Config > Setting - User 设置一些参数

{
    "PATH": "/usr/local/go/bin",
    // 这里改成你自己的GOPATH
    "GOPATH": "$HOME/golang/workspace"
}

好了,现在可以试试了

  • 在workspace下创建一个src目录:
    mkdir -p $HOME/golang/workspace/src
  • 创建一个go文件hello.go
  • 写入如下内容
package main

import (
    "github.com/iTaa/testGoGet"
)

func main() {
    testGoGet.TestGoGet()
}

go get 测试

  • -点击 Preferences > Package control 菜单(MAC快捷键 shift + command + p)
  • 在弹出框里输入 go get , 点击Go: get
    go get test
  • 输出go get test success! 证明你可以使用go get 了

go get test

get run 、go install 、go build 、go clean 等测试

  • 点击 Toos > Build With (Mac 快捷键 shift + command + b)

go build

  • 看到下面的命令,点击即可
    go build

安装GoSublime

GoSublime 是一个交互式的go build 工具,使用起来也是很方便,主要配合Golang build使用。

  • 点击 Preferences > Package control 菜单(MAC快捷键 shift + command + p)
  • 在弹出的输入框输入install 选择Package control:install package
  • 然后输入GoSublime 选择 GoSublime 安装

使用GoSublime

  • 配置GoSublime 自动的设置GOPATH

GoSublime

  • 设置 "use_gs_gopath": true ,默认是false

use_gs_gopath

  • 搞定了

使用方式也是:

  • 点击 Toos > Build With (Mac 快捷键 shift + command + b)
  • 选择GoSublime 会出现一个交互式输入

GoSublime

在这里你可以输入你想使用的命令,go get , go install 、go build 、go clean, 都可以。

文章写了一上午,内容较多,可能有些地方没有描述清楚,如有问题请留言。

相关文章
|
编译器 Go
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
|
运维 监控 算法
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
|
9月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
429 2
|
11月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
654 1
|
11月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
650 0
|
11月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
469 0
|
11月前
|
Cloud Native Java 中间件
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
503 0
|
11月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
783 0
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
11月前
|
数据采集 Go API
Go语言实战案例:多协程并发下载网页内容
本文是《Go语言100个实战案例 · 网络与并发篇》第6篇,讲解如何使用 Goroutine 和 Channel 实现多协程并发抓取网页内容,提升网络请求效率。通过实战掌握高并发编程技巧,构建爬虫、内容聚合器等工具,涵盖 WaitGroup、超时控制、错误处理等核心知识点。

热门文章

最新文章