使用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, 都可以。

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

相关文章
|
26天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
72 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
1月前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
45 7
|
1月前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
1月前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
112 71
|
1月前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
115 67
|
7天前
|
算法 安全 Go
Go语言中的加密和解密是如何实现的?
Go语言通过标准库中的`crypto`包提供丰富的加密和解密功能,包括对称加密(如AES)、非对称加密(如RSA、ECDSA)及散列函数(如SHA256)。`encoding/base64`包则用于Base64编码与解码。开发者可根据需求选择合适的算法和密钥,使用这些包进行加密操作。示例代码展示了如何使用`crypto/aes`包实现对称加密。加密和解密操作涉及敏感数据处理,需格外注意安全性。
30 14
|
7天前
|
Go 数据库
Go语言中的包(package)是如何组织的?
在Go语言中,包是代码组织和管理的基本单元,用于集合相关函数、类型和变量,便于复用和维护。包通过目录结构、文件命名、初始化函数(`init`)及导出规则来管理命名空间和依赖关系。合理的包组织能提高代码的可读性、可维护性和可复用性,减少耦合度。例如,`stringutils`包提供字符串处理函数,主程序导入使用这些函数,使代码结构清晰易懂。
40 11
|
7天前
|
存储 安全 Go
Go语言中的map数据结构是如何实现的?
Go 语言中的 `map` 是基于哈希表实现的键值对数据结构,支持快速查找、插入和删除操作。其原理涉及哈希函数、桶(Bucket)、动态扩容和哈希冲突处理等关键机制,平均时间复杂度为 O(1)。为了确保线程安全,Go 提供了 `sync.Map` 类型,通过分段锁实现并发访问的安全性。示例代码展示了如何使用自定义结构体和切片模拟 `map` 功能,以及如何使用 `sync.Map` 进行线程安全的操作。
|
11天前
|
监控 安全 算法
深度剖析核心科技:Go 语言赋能局域网管理监控软件进阶之旅
在局域网管理监控中,跳表作为一种高效的数据结构,能显著提升流量索引和查询效率。基于Go语言的跳表实现,通过随机化索引层生成、插入和搜索功能,在高并发场景下展现卓越性能。跳表将查询时间复杂度优化至O(log n),助力实时监控异常流量,保障网络安全与稳定。示例代码展示了其在实际应用中的精妙之处。
36 9
|
27天前
|
IDE 开发工具
【开发IDE升级】如何对IDEA版本进行升级
本文介绍了如何将 IntelliJ IDEA Ultimate 从 2020.2.2 版本升级到 2022.3.2 版本。主要内容包括准备工作、卸载旧版本和安装新版本的步骤。首先,从官网下载所需版本并备份旧版配置;接着,通过 Uninstall.exe 卸载旧版,保留配置和插件;最后,安装新版并完成激活。详细的操作步骤和截图帮助用户顺利完成升级过程。
【开发IDE升级】如何对IDEA版本进行升级