1 常用快捷键
以下是windows版本快捷键。
1.1 编辑相关
快捷键 | 说明 |
---|---|
Shif+Enter | 另起一行 |
Ctrl+D | 复制当前行或选中代码块到下一行 |
Ctrl+Y | 删除当前行或选中代码块 |
Ctrl+Z | 撤销上一步操作 |
Ctrl+Shift+Z | 重做上一步操作 |
Ctrl+R | 替换当前文件特定内容 |
Ctrl+Shift+R | 替换当前项目特定内容 |
Ctrl+ C、V、X | 复制、粘贴、剪切 |
Ctrl+/ | 行注释启用和取消 // |
Ctrl+Shift+/ | 代码块的注释启用和取消 /**/ |
Alt+Shift+鼠标左键 | 选择一列,可以对多行数据同时编辑 |
1.2 查找相关
快捷键 | 说明 |
---|---|
Ctrl+F | 当前文件搜索 |
Ctrl+Shift+F | 当前项目搜索 |
Ctrl+E | 显示最近的文件 |
Ctrl+Shif+Alt+N | 查找系统库函数 |
Alt+F7 | 查找指定的变量名、对象名、函数名在当前项目中所有引用的位置和次数 |
Ctrl+Shif+F7 | 查找结果Alt+F7一样,只是直接显示结果,不包含文件目录 |
双击Shift | 综合查找,同时查找包括classes(类名)、files(文件名)、symbols(变量名、成员名、函数名,也就是类的方法和变量) |
Ctrl+N | 查找类名(classes) |
Ctrl+Shif+N | 查找文件名(files) |
Ctrl+Shif+N | 查找类的方法和变量(symbols) |
Ctrl+B | 快速打开光标处的类或方法,与Ctrl+鼠标点击效果一样,可以双向跳转 |
Ctrl+Shift+B | 找变量的类,例如job,err:=newJob(),光标在job或err上,然后使用快捷键可以快速定位到类定义位置 |
Ctrl+H | 显示类结构图,光标指定的类 |
Ctrl+Q | 显示注释文档图,光标指定的类 |
Ctrl+Shif+P | 查看表达式类型,自动选中包含的代码块 |
1.3 自动代码相关
快捷键 | 说明 |
---|---|
Alt+Insert | 生成代码,例如构造函数、测试代码等。(1) 生成构造函数操作流程,光标指定在结构体对象时,按下Alt+Insert快捷键,选择Constuctor,选择fields(按shift+点击可多选),确定后自动填充构造函数代码。(2)自动填写测试代码块流程,把光标移动到函数定义位置,按下Alt+Insert快捷键,选择test for function,会自动创建测试文件并填充该函数的测试代码块,也可以选择一次性添加所有函数测试代码块。 |
Ctrl+Alt+V | 自动生成函数返回值,例如先写了函数,按下快捷键,自动生成返回值变量 |
Ctrl+I | 实现接口,按下快捷键Ctrl+I,弹出框可以使用已有的结构体对象或者新创建结构体对象,然后再输入框里填写已定义的接口名称,会自动生成实现该接口方法的代码 |
Ctrl+J | 自动添加代码(consts、vars、iotas、method、test、benchmark等),在文件的空白处,按下快捷键,选择对应的类型 |
Ctrl+Alt+Space | 类名或接口名提示,例如输入io,突然切换焦点,然后光标切回io位置,按下快捷键会自动提示 |
Ctrl+Shift+Space | 自动补全代码,包括函数名、对象的方法名、参数名等 |
Alt+Enter | 弹出帮助选项,等效于点击旁边有个小灯泡 |
Shift+F6 | 安全批量重命名对象、变量、函数、注释 |
Ctrl+Alt+T | 把选中的代码块放在 for{} IF{} ELSE{} 里 |
Ctrl+Alt+M | 重构表达式为函数(光标在表达式末尾),光标移动调用函数位置,按下快捷键,自动生成重构函数 |
1.4 其他常用快捷键
快捷键 | 说明 |
---|---|
Ctrl+鼠标 | 悬停:显示信息摘要;点击:跳转到定义位置 |
Ctrl+Shift+上下箭头 | 上下移动行内容 |
Ctrl+Alt+左右箭头 | 前进或后退 |
Ctrl+W | 递进选择代码块 |
Ctrl+Shift+W | 返回上一次选择代码块状态 |
Alt+F12 | 调出终端 |
Ctrl+Shift+加减号 | 展开或折叠函数代码块 |
Alt+F1 | 在任意视图下弹出当前文件或功能窗口 |
2 个性化设置和插件安装
2.1 个性化设置
显示工具栏
【View】-->【Appearance】勾选Toobar,显示工具栏
设置主题字体
主题1 Monokai
【File】-->【Setting】-->【Edit】-->【Color Scheme】,选择主题Monokai
【File】-->【Setting】-->【Edit】-->【Font】,选择字体verdana,字体大小16
主题2 GapStyle,需要先安装插件GapStyle Color Scheme
【File】-->【Setting】-->【Edit】-->【Color Scheme】-->【Gereral】,选择主题GapStyle
【File】-->【Setting】-->【Edit】-->【Color Scheme】-->【Color Font】,选择字体verdana,字体大小16
go环境设置
【File】-->【Setting】-->【Go】-->【GOROOT】选择安装go root位置
【File】-->【Setting】-->【Go】-->【GOPATH】如果不存在,添加进去
设置git
【File】-->【Setting】-->【Version Control】-->【Git】,填写Path to git executable,例如 D:\Program Files\cmder\vendor\git-for-windows\bin\git.exe
设置Terminal
【File】-->【Setting】-->【Tools】-->【Terminal】,选择Shell path,例如 D:\Program Files\cmder\vendor\git-for-windows\bin\bash.exe
设置代理
【File】-->【Setting】-->【Appearance & Behavior】-->【System Setting】-->【HTTP Proxy】,选择Manual proxy configuration,选择SOCKS,填写Host name和Port number,填写No proxy for,例如192.168.*
2.2 安装插件
在goland安装插件,【File】–>【Setting】–>【Plugins】,点击Marketplace,搜索插件:
插件名称 | 使用 | 插件说明 |
---|---|---|
GapStyle Color Scheme | - | 以生产力为导向的配色方案,每采用丰富的色彩进行定制,同时保持舒适的对比度,帮助开发人员提高不同编程语言的读写速度。 |
Atom Material Icons | - | 自定义文件和 IDE 图标,用于改进视觉,安装后在图标在IDE顶部显示 |
Json Helper | 图标在IDE右边菜单栏显示 | 美化、丑化、转义,反转义你的json |
String Manipulation | 选中文本右键选择string manipulation | 大小写切换、排序、过滤、递增、与列对齐、grepping、转义、编码 |
MultiHighlight | 快捷键:Ctrl+’ | 使用自定义颜色突出显示,在阅读源代码时很有帮助。 |
Translation | 选中文本,右键选择翻译,图标在顶部菜单显示 | 翻译 |
Protocol Buffers | - | 高亮显示proto文件 |
Makefile Language | - | 语法高亮显示makeFile文件内容 |
New Relic CodeStream | - | 代码审查 GitHub、GitLab、PR |
Swagger | - | 轻松编辑 Swagger 和 Open API 规范文件的插件。 |
Statistic | 图标在底部菜单显示 | 统计代码 |
LeetCode Editor | 图标在右边菜单显示 | 支持leetcode.com和leetcode.cn,可以测试和提交问题 |
RegexpTester | 图标在底部菜单显示 | 正则表达式测试器 |
Tabnine | 图标在底部菜单显示,点击图标使用github登录 | 代码自动提示 |
Github copilot | 图标在底部菜单显示,使用说明看 [[github copilot]] | 代码自动补全 |
离线安装插件,下载插件地址 https://plugins.jetbrains.com
【File】–>【Setting】–>【Plugins】,点击设置符号,选择 Install Plugin from Disk
3 自动插入代码
golang IDE可以通过模板、接口实现等方式自动插入代码,减少手动写代码,提高了编码效率。
golang IDE的go语言自带一些常用模板,当然也可以定义自己常用的模板。
golang IDE默认模板
模板名称 | 说明 |
---|---|
err | 判断err不等于nil |
meth | 方法 |
for | for遍历 |
forr | for range 遍历 |
test | test单元测试 |
bench | test单元压力测试 |
…… | …… |
Edit–>Live templates 选择go。
3.1 设置自定插入代码模板
Edit–>Live templates 选择go,可以编辑或添加新模板。
(1) for模版
模板名称 | 说明 |
---|---|
fori | for循环 |
模板代码如下,设置变量SIZE默认值为”20”。
for i := 0; i < $SIZE$; i++ {
$END$
}
(2) 把对象转换为json
模板名称 | 说明 |
---|---|
oj | 把对象转换为json的字符串格式,方便输出打印对象,注:只有导出成员(第一个字母大写)才能转换为json。使用fmt包的打印函数会优先读取对象的String方法,不需要.String()去获取。 |
模板代码如下,设置变量Receiver默认值为”Receiver”
func (o *$Receiver$) String() string {
if o == nil {
return "object is nil"
}
value, err := json.Marshal(o)
if err != nil {
return err.Error()
}
return string(value)
}
3.2 设置结构体tag模板
常用设置的成员属性模板
模板名称 | 说明 | Template Text | Variables Value |
---|---|---|---|
json | json | json:"$FIELD_NAME$"$END$ |
camelCase(fieldName()) |
jb | json和bson的简称 | json:"$FIELD_NAME$" bson:"$FIELD_NAME$"$END$ |
camelCase(fieldName()) |
jg | json和gorm的简称 | json:"$FIELD_NAME$" gorm:"column:$FIELD_NAME2$;COMMENT:'';not null"$END$ |
camelCase(fieldName()), snakeCase(fieldName()) |
jt | json和toml的简称 | json:"$FIELD_NAME$" toml:"$FIELD_NAME$"$END$ |
camelCase(fieldName()) |
Edit–>Live templates 选择go struct tags
自定义组合模板设置
3.3 通过实现接口自动插入代码
选中一个结构体对象,按组合键Alt+Enter
或点击旁边的小灯泡,选择Implement interface,然后搜索需要实现的接口,比如reader接口,golang IDE会自动插入对象实现接口代码段。
func (data) Read(p []byte) (n int, err error) {
panic("implement me")
}
4 其他设置
4.1 代码规范检查
golangci-lint
安装插件
【File】 –> 【Settings】 –> 【Plugins】 –> 【marketplace】搜索go linter,点击安装插件。
配置插件
【File】 –> 【Settings】 –>【Tools】–> 【Go Linter】点击Get latest安装golangci-lint软件,如果无法下载,可以去官网 https://github.com/golangci/golangci-lint/releases 下载到本地,然后指定golangci-lint路径。
配置扩展工具
【File】 –> 【Settings】 –> 【Tools】–> 【External Tools】点击
+
号按钮,在弹出框分别填写
名称 | 值 |
---|---|
Name | golangci-lint |
Description | 代码规范检查工具 |
Program | 你的golangci-lint安装目录 |
Arguments | run $FilePath$ |
Working Director | $ProjectFileDir$ |
配置使用快捷方式
【File】 –> 【settings】 –> 【Keymap】 –> 【External Tools】 –> 右键golangci-lint选择 add keyboard shortcut,在弹出框输入快捷键,例如Ctrl+Alt+7
golint
# 安装golint
go get github.com/golang/lint
go install github.com/golang/lint/golint
# 记录下golint的二进制文件路径
# 整个项目代码检查
golint ./...
(1) 添加golint到IDE
【File】 –> 【Settings】 –> 【Tools】–> 【External Tools】,左上角的+号添加工具,添加如下图所示:
名称 | 值 |
---|---|
Name | golint |
Program | C:\Work\Golang\Package\bin\golint.exe |
Arguments | $FileDir$ |
Working directory | $ProjectFileDir$ |
Arguments的值说明:
$FilePath$
表示只检测当前文件$FileDir$
表示检测当前文件夹下所有文件
(2) 为工具添加快捷方式
【File】 –> 【Settings】 –> 【Keymap】–> 【External Tools】,右键golint,选择 add keyboard shortcut,在弹出框输入快捷键,如下图所示:
5 注意事项
(1) 由IDE代理引起的http请求错误
当IDE设置了proxy之后,记得设置no proxy for选项,例如192.168.*,如果不设置,所有http请求都走proxy,会返回EOF错误。
(2) 解决无法识别goroot问题
找到go安装目录下文件zversion.go 例如路径:C:\Go\src\runtime\internal\sys\zversion.go.
打开文件添加const TheVersion = "go1.17.2"
,具体根据实际情况填写版本。
专题「工具」的其它文章 »
- TLS和SSL (Nov 17, 2020)
- prometheus基础和使用 (Aug 20, 2019)
- kubernetes基础和使用 (Sep 30, 2018)
- 使用gitlab和gitlab-runner实现DevOps (Sep 15, 2018)
- 一款漂亮的命令行工具——cmder (Sep 10, 2018)
- 搭建个人代码托管git服务 (Aug 19, 2018)
- 使用vagrant和vitrualBox搭建虚拟开发环境 (Aug 16, 2018)
- docker基础和使用 (Aug 10, 2018)