文章目录

  • 1.简介
  • 2.快速上手
    • step 1 创建项目
    • step 2 配置环境变量 GOPATH
    • step 3 编写 main.go
    • step 4 编译运行
  • 3.代码静态检测
    • 3.1 开启 go fmt
    • 3.2 开启 goimports
    • 3.3 开启 golangci-lint
  • 4.常见设置
    • 变更主题
    • 变更文件编码方式
    • 修改 Tab 表示空格数
    • 修改文件名称
    • 修改换行符
    • 开启 HTTP 代理
    • 设置缩进线位置与自动换行
    • 关闭 import 折叠
  • 5.常用快捷键
  • 参考文献

1.简介

GoLand 是一款由捷克软件开发公司 JetBrains 专为 Go 开发的跨平台的商业 IDE。Goland 具有 Strong Code Insight、Navigation & Search、Run & Debug、Integration with VCSs、More than just a Go IDE 以及较强的 Extensibility,能够帮助 Gopher 轻松愉悦方便快捷地 read 和 write Go code。

JetBrains 公司出品的 IDE,在业界有着良好的口碑,比如 CLion for C/C++、IntellijI IDEA for Java、PyCharm for Python、PhpStorm for PHP、WebStorm for JavaScript 等。Goland 一经推出,受到了广大 Gopher 的喜爱,建议大家将其作为 Go 的首选 IDE。

唯一令人遗憾的是 GoLand 是收费产品,如果没有条件或者烦于破解,开源免费的 VS Code 也是一个不错的选择。

下面以 Windows 下的 GoLand(2020.3.3) 为例,为大家演示如何快速上手 GoLand。

2.快速上手

step 1 创建项目

File > New > Project


其中 gotest 为项目名称,同时设置 GOROOT。这里需要提前把 Go 安装好。

step 2 配置环境变量 GOPATH

File > Settings > Go > GOPATH


GOPATH 下有三个目录,bin 存放安装的程序,pkg 存放依赖的包,src 存放下载的源码。

可以给工程单独配置一个 GOPATH,也可以使用全局的 GOPATH,也就是所有工程共用一个 GOPATH。这里使用全局的 GOPATH。

注意: 自己的工程一般放在 GOPATH 之外的任意位置。

step 3 编写 main.go

File > New > Go File

step 4 编译运行

控制台运行:

go run main.go
hello world


通过上面四步,就完成了 Go 工程的创建和运行,是不是挺容易上手的呢。

3.代码静态检测

使用 GoLand 编写 Go 代码时,可以配合 gofmt + goimports + golangci-lint 在保存时完成对代码的格式化和质量检测。

3.1 开启 go fmt

在每次保存代码文件时自动格式化代码。

File > Settings > Tools >  File Watchers > + > go fmt

3.2 开启 goimports

在每次保存代码时自动添加缺失的和删除未引用的包。

File > Settings > Tools >  File Watchers > + > goimports

如果插件详情界面显示红色,如下图所示,表示 goimports 插件未安装。

需要我们手动安装,安装方法一般有三个:
(1)点击 Tools > Go Tools > Goimports File,如果没有安装 goimports,则会提示未安装,按照指引,点击安装链接即可。

(2)打开 Terminal 工具窗口(View > Tool Windows > Terminal),然后执行 go get golang.org/x/tools/cmd/goimports 命令,goimports.exe 将被安装到 GOPATH/bin 目录下。

(3)通过源码安装。将仓库 https://github.com/golang/tools.git clone 到 $GOPATH/src/golang.org/x/tools,然后进入 cmd 目录下执行:go install golang.org/x/tools/cmd/goimports,会在 $GOPATH/bin 目录下生成 goimports.exe 文件。

goimports 检测代码有 2 种方式,如果下面不加 -w 仅打印修正 import 包后的结果,如果加了 -w 会修正 import 包然后将修正后的代码覆盖原始内容。

# 可以指定单个文件或目录
goimports - w file
goimports - w directory

3.3 开启 golangci-lint

开启 golangci-lint 可以对代码进行静态检查,比如报告函数行数超标、文件行数超标等来帮助规范代码。

开启配置:

File > Settings > Tools >  File Watchers > + > golangci-lint

如果本地未安装 golangci-lint,会显示红色,如下图所示:

安装方法主要有两个:
(1)执行命令:

go get -u github.com/golangci/golangci-lint/cmd/golangci-lint

(2)手动下载可执行文件。下载地址是 golangci-lint 在 Github 发布页面 releases。

配置文件:
golangci-lint 会从第一个分析路径的目录到根目录的所有目录中搜索配置文件。如果没有找到配置文件,将尝试在 home 目录中搜索。要查看正在使用哪个配置文件,以及从何处获取配置文件,请使用 -v 选项运行 golangci-lint。

golangci-lint 的配置文件可以是下面中的任意一个:

.golangci.yml
.golangci.yaml
.golangci.toml
.golangci.json

golangci-lint 有对应的配置文件来告诉其如何检测代码,配置文件放到工程的根目录。比如配置文件 .golangci.yaml

linters-settings:funlen:lines: 80statements: 80goconst:min-len: 2min-occurrences: 2gocyclo:min-complexity: 20golint:min-confidence: 0govet:check-shadowing: truelll:line-length: 120errcheck:check-type-assertions: true
linters:disable-all: trueenable:- bodyclose- deadcode- funlen- goconst- gocyclo- gofmt- ineffassign- staticcheck- structcheck- typecheck- goimports- golint- gosimple- govet- lll- rowserrcheck- unused- varcheck
run:skip-dirs:- tars-protocolskip-files:- _test.goservice:golangci-lint-version: 1.23.x

关于 golangci-lint 的使用详见其官方文档。

4.常见设置

变更主题

File > Settings > Appearance & Behavior > Appearance > Theme

建议选择背景为黑色的经典样式 Darcula,比较护眼。

  • 变更字体类型、大小与行距
File > Settings > Editor > Font

变更文件编码方式

File > Settings > Editor > File Encodings

修改 Tab 表示空格数

Tab 默认为 4 个空格。

File > Settings > Editor > Code Style > Go

修改文件名称

右键文件 > Refactor > Rename

修改换行符

File > setting > Editor > Code Style > Line seperator

开启 HTTP 代理

如果无法下载依赖的墙外的 Go 包或者工具,那么需要配置 HTTP 代理。

File > Settings > Appearance & Behavior > HTTP Proxy

如果需要命令行也生效,那么需要配置环境变量。例如 Windows 下的环境变量配置如下:

:: 临时有效
set http_proxy=127.0.0.1:12345:: 永久有效
setx http_proxy 127.0.0.1:12345

设置缩进线位置与自动换行

缩进线是观察者无障碍视线的直线,是编辑窗口中的那条竖线,用于提示开发人员当前行已超过标准,不利于阅读。

GoLand 默认一行不应超过 120 个字符,可进行配置。

File > Settings > Editor > Code Style > Hard wrap at

如果勾选 Wrap on typing 在编辑时超长将自动换行。

关闭 import 折叠

GoLand 默认会将 import 语句折叠起来,每次浏览 import 语句时都需要手动点开,如果想关闭的话,进行如下配置:

Editor > General > Code Folding > 去掉勾选 Imports

5.常用快捷键

  • 文件相关
Ctrl + E                    打开最近浏览过的文件
Ctrl + Shift + E          打开最近修改的文件
Ctrl + Shift + N          查找文件
  • 查找
Ctrl + R                    替换文本
Ctrl + F                   查找文本
Ctrl + Shift + F          全局查找
  • 导航
Ctrl + G                    快速定位到某行
Ctrl + B                   跳转至方法或结构体的定义或引用处
Ctrl + 左键单击                等同于 Ctrl + B
Ctrl + Alt + Left/Right       回退或前进到上次光标所在位置
Page Up                     向上滚动一页
Shift + PageUp             向上滚动一页并选中
PageDown                    向下滚动一页
Shift + PageDown           向下滚动一页并选中
Ctrl + PageUp              跳转至当前显示框的首行
Ctrl + Shift + PageUp     跳转至当前显示框的首行并选中
Ctrl + Page Down           跳转至当前显示框的末行
Ctrl + Shift + PageDown       跳转至当前显示框的末行并选中
Home                        跳转至行首
Shift + Home               跳转至行首并选中
End                         跳转至行尾
Shift + End                    跳转至行尾并选中
Ctrl + Home                    跳转至文件首行
Ctrl + Shift + Home           跳转至文件首行并选中
Ctrl + End                 跳转至文件尾行
Ctrl + Shift + End            跳转至文件尾行并选中

注意:暂未发现 Windows GoLand 半屏滚动快捷键,有知道的同学麻烦留言告知。

  • 选择
Alt + Shift + 左键长按     移动鼠标矩形选择内容
  • 编辑
Ctrl + C 或 Ctrl + Insert   拷贝光标所在行或选中的内容
Ctrl + D                   复制光标所在行或选中的内容
Ctrl + X                   剪切光标所在行或选中的内容
Ctrl + Y                   删除光标所在行
Ctrl + Z                   撤销
Ctrl + Shift + Z          反向撤销
Ctrl + W                   选中光标所在的代码块,多次触发,代码块会逐级变大
Ctrl + /                   单行注释或取消
Ctrl + Shift + /          多行注释或取消
Ctrl + +                  折叠代码块、结构体或函数
Ctrl + -                   展开代码块、结构体或函数
Ctrl + Alt + Enter            当前行的上方插入空行
Shift + Enter              当前行的下方插入空行
Ctrl + Backspace           按单词进行删除
Alt + Shift + Up/Down     可以将光标所在行的代码上下移动
Ctrl + Shift + U          将选中内容进行大小写转化

在 Goland 的帮助菜单里就有一份官方的默认快捷键列表:Help > Keymap Reference。

你可以通过 File > Settings > Keymap 设置 Goland 快捷键。注意你不能更改预定义的快捷键,当你修改任何快捷时,Goland 将为当前选定的快捷键创建一个副本,你可以对其进行配置。


参考文献

[1] JetBrains 官网
[2] JetBrains Goland 官网
[3] GO语言从入门到放弃二:Goland安装与配置
[4] Keyboard shortcuts - Help | GoLand - JetBrains
[5] 掘金.IntelliJ IDEA 快捷键说明大全(中英对照、带图示详解)
[6] CSDN.IDEA中自动换行和标准线的设置
[7] 知乎.代码中的缩进线
[8] Go tools - Help | GoLand - JetBrains
[9] Go语言中文网.GoImports安装使用(修正 go import包的规范)

GoLand 快速入门教程相关推荐

  1. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

    BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...

  2. ​HealthKit开发快速入门教程大学霸内部教程

    ​HealthKit开发快速入门教程大学霸内部教程 ​ ​ 国内第一本HealthKit专向教程.本教程详细讲解iOS中,如何使用HealthKit框架开发健康应用.最后,本教程结合HealthKit ...

  3. Apple Watch开发快速入门教程

     Apple Watch开发快速入门教程  试读下载地址:http://pan.baidu.com/s/1eQ8JdR0 介绍:苹果为Watch提供全新的开发框架WatchKit.本教程是国内第一本A ...

  4. 指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程

    指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程 ​1.4.2  指示灯组 指示灯组的放大图如图1.5所示. 图1.5  指示灯组 各个指示灯对应的功能如下: q  RX:对应于0号端口 ...

  5. 游戏控制杆OUYA游戏开发快速入门教程

    游戏控制杆OUYA游戏开发快速入门教程 1.2.2  游戏控制杆 游戏控制杆各个角度的视图,如图1-4所示,它的硬件规格是本文选自OUYA游戏开发快速入门教程大学霸: 图1-4  游戏控制杆各个角度的 ...

  6. Arduino Yun的主要部件介绍选自Arduino Yun快速入门教程

    Arduino Yun的主要部件介绍 1.4.1  主要部件 Yun的主要部件如图1.4所示. 图1.4  Arduino Yun的主要部件 在Yun小小的板子上集成了两颗处理器.一个是ATmega3 ...

  7. 认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

    认识AndEngine什么是AndEngine 随着Android手机.平板的盛行,Android下的游戏也不断的变得火热.而对于游戏开发有兴趣的同学们,应该也想要学习开发游戏.虽说游戏开发的引擎较多 ...

  8. OUYA游戏开发快速入门教程1.2OUYA的硬件规格

    OUYA游戏开发快速入门教程1.2OUYA的硬件规格 从官网上购买回来的OUYA产品,包含游戏主机.游戏控制杆.说明书.电源线.HDMI线.电源线和电池,如图1-2所示.本节就来简要介绍下,游戏主机和 ...

  9. Android 2D游戏引擎AndEngine快速入门教程

    Android 2D游戏引擎AndEngine快速入门教程 介绍:AndEngine是一款知名的Android 2D游戏引擎.该引擎代码开源,并且可以免费使用.本书详细讲解如何使用AndEngine引 ...

最新文章

  1. 从共享租车成绿色消费首选,看共享经济未来
  2. vue-router路由基础
  3. ajax请求php保存数据格式,jQuery ajax与php进行数据交互(数据格式问题)
  4. 实现基于注解(Annotation)的数据库框架(三)自定义注解(Annotation)
  5. python数据结构与算法(13)
  6. Linux下的一些问题收集及解决方法(一)
  7. EMQ源码之--EMQ的启动
  8. 安装linux并卸载windows,如何在安装双启动后卸载 Windows 或者 Linux
  9. 19_01访问权限修饰符
  10. linux文件查找-find和locate
  11. python下标是什么类型_python基本的数据类型
  12. IDEA与Maven Java普通项目
  13. python-socket作业
  14. [译] Promise A+ 标准
  15. php长篇特点,《细说PHP》特色
  16. 电子信息工程专业实习手册周记_信息专业实习周记范文
  17. 微信小程序│ 游戏开发 │连连看游戏
  18. SDU程序设计思维Week15-作业 字符串
  19. 微信小程序 模拟支付宝账单的个人记账小程序
  20. mysql2003错误如何解决_win7电脑提示数据错误循环冗余检查如何解决

热门文章

  1. Zoom 5.1.2及旧版本在 Win7 上的 DLL 劫持漏洞分析
  2. 警惕!这个 PowerPoint“弱点”可用于发动鼠标悬停攻击
  3. MITRE 发布工控系统的 ATTCK 框架
  4. CW3 Clarifications
  5. Java删除ArrayList中的重复元素的2种方法
  6. 统计文件中以某个字母开头的单词的数目
  7. 卸载VS2005不完全出现的安装问题
  8. 用python的进行压缩文件
  9. MongoDB的存储结构及对空间使用率的影响
  10. 蓝桥杯 ADV-169 算法提高 士兵排队问题