您现在的位置是:首页 > 正文

Linux Golang+Vscode环境配置

2024-02-01 02:24:19阅读 4

1. Vscode下载与配置

1.1 官网下载.deb文件

https://code.visualstudio.com
进入下载deb文件所在文件夹,并打开终端
运行 sudo dpkg -i + 文件名

安装包的时候出现了一个异常
dpkg: error: dpkg frontend is locked by another process
原因是包管理器没有正确关闭。需要重启计算机或者重新打开终端 输入:
sudo apt-get install -f
sudo rm /var/lib/dpkg/lock-frontend
sudo apt-get install -f

1.2 Vscode插件安装

ctrl+shift+x 打开插件拓展中心,安装Chinese(中文插件,需重启Vscode),Go插件

2. Golang下载与环境配置

2.1 官网下载linux golang安装包

https://studygolang.com/dl 下载go1.17.8.linux-amd64.tar.gz(选择适合版本即可)
进入下载文件所在文件夹打开终端
运行 sudo tar -C /usr/local/ -xzvf go1.10.2.linux-amd64.tar.gz 命令解压到 /urs/local/ 目录

2.2 Golang环境配置

打开终端输入
vim ~/.bashrc 最后面添加上
export GOROOT=/usr/local/go //安装go所在文件夹
export GOPATH=/home/lv/studygo //你希望的Go工程文件夹,自己选择
export GOBIN= G O P A T H / b i n e x p o r t P A T H = GOPATH/bin export PATH= GOPATH/binexportPATH=PATH: G O R O O T / b i n : GOROOT/bin: GOROOT/bin:GOPATH/bin
最后执行source ~/.bashrc

go env -w GOPROXY=https://goproxy.cn,direct // 修改下载代理

运行 go env 查看是否改变成功
在这里插入图片描述
在Gopath下建立三个文件夹
bin //文件夹存放go install命令生成的可执行文件,
pkg //文件夹是存在go编译生成的文件。
src //存放的是我们的go源代码,不同工程项目的代码以包名区分

新建项目实例

1. 新建文件

打开Vscode,打开src文件夹,新建文件夹main,并在main下新建main.go 文件
此时会提示安装第三方包,直接安装会失败
因此需要自己安装
网上步骤如下,但是会遇到许多问题

1、在GOPATH目录下创建必要两个目录 $ mkdir -p github.com/golang $ mkdir -p
golang.org/x
2. 克隆golang官方的tools包到上一步创建的两个目录
> git clone https://github.com/golang/tools.git github.com/golang/tools
git clone https://github.com/golang/tools.git golang.org/x/tools

可能会出现如下问题:
在这里插入图片描述
在这里插入图片描述
博客说依次使用以下命令就可以正常使用

git config --global --unset http.proxy
git config --global --unset https.proxy

但是又遇到以下问题
在这里插入图片描述
后来发现虚拟机没有安装git,安装git后在终端还是失败,但是在vscode终端成功了,可能是github的原因
在这里插入图片描述
更正:没有修改GOPROXY,需要在设置go环境时一起修改,此时可以正常git clone
在此之前请先设置GOPROXY,打开终端执行以下命令:
go env -w GOPROXY=https://goproxy.cn,direct

安装第三方包
go install github.com/mdempsky/gocode@latest
go install github.com/uudashr/gopkgs/cmd/gopkgs@latest
go install github.com/ramya-rao-a/go-outline@latest
go install github.com/acroca/go-symbols@latest
go install golang.org/x/tools/cmd/guru@latest
go install golang.org/x/tools/cmd/gorename@latest
go install github.com/derekparker/delve/cmd/dlv@latest
go install github.com/rogpeppe/godef@latest
go install golang.org/x/tools/cmd/godoc@latest
go install github.com/sqs/goreturns@latest
go install github.com/golang/lint/golint@latest
go install github.com/cweill/gotests/gotests@latest
go install github.com/fatih/gomodifytags@latest
go install github.com/josharian/impl@latest
go install github.com/davidrjenni/reftools/cmd/fillstruct@latest
go install github.com/haya14busa/goplay/cmd/goplay@latest
go install github.com/go-delve/delve/cmd/dlv@latest
go install honnef.co/go/tools/cmd/staticcheck@latest
go install golang.org/x/tools/gopls@latest
go install golang.org/x/tools/cmd/goimports@latest

安装完成后就可以代码自动补全了
可以尝试在main.go里边输入

package main
import "fmt"

func main() {
	s1 := "hello"
	fmt.Println(s1)
}

推荐配置与插件

通过ctrl+shift+p 搜索配置用户代码片段,然后选择go(go.json)在这里可以通过设置方便用户编程
例如,如下所示,敲出pln+Enter,会自动变为fmt.Println()
“pln”:{
“prefix”: “pln”,
“body”: “fmt.Println($0)”,
“description”: “fmt.Println()”
},
“plf”:{
“prefix”: “plf”,
“body”: “fmt.Printf(”$0\n", )",
“description”: “fmt.Printf()”
},
“ifer”:{
“prefix”: “ifer”,
“body”: [“if err != nil {”,
“\t fmt.Println($0)”,
“}”],
“description”: “if err != nil”
}

推荐插件

Code Runner, 可以之间点击运行人不需要命令
Github Theme 主题颜色

网站文章

  • TS

    TS

    什么是TypeScript? TypeScript是javascript的类型的超集,它可以通过编译工具编译成纯的javascript,并且运行在任何浏览器上。 接下来,开始学习typescript,看看它究竟是什么? TypeScript它有一个很特别的地方就是类型系统(其实个人觉得可以看作是对变量或函数 添加了约束的方式) 对于变量的类型定义,还有函数的类型定义能让我们一...

    2024-02-01 02:23:49
  • Kotlin之使用协程编写高效的并发程序

    Kotlin之使用协程编写高效的并发程序

    协程属于Kotlin中非常有特色的一项技术,因为大部分编程语言中是没有协程这个概念的。那么什么是协程呢?它其实和线程有点相似,可以简单地将它理解成**一种轻量级的线程**。我们之前学习的**线程是重量...

    2024-02-01 02:23:42
  • 边缘计算

    边缘计算

    原文链接:http://news.rfidworld.com.cn/2017_07/fd8ac009637554fe.html  图1、邻近计算或者边缘计算让智能更加靠近设备  边缘计算(Edge c...

    2024-02-01 02:23:33
  • 为什么要有无参构造方法,无参构造的运行原理 热门推荐

    为什么要有无参构造方法,无参构造的运行原理 热门推荐

    本文参考链接:https://blog.csdn.net/Akanarika520/article/details/84927403 无参构造器也叫无参构造方法,在我们创建类时候,可以不用写构造方法,...

    2024-02-01 02:23:03
  • 面试题:JS去除数组中重复的元素

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascr

    2024-02-01 02:22:56
  • DMA原理,步骤超细详解,一文看懂DMA

    DMA原理,步骤超细详解,一文看懂DMA

    关注、星标公众号,直达精彩内容素材来源:csdn整理:技术让梦想更伟大|李肖遥 DMA的基本介绍 什么是DMA (DMA的基本定义)DMA,全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。我们知道CPU有转移数据、计算、控制程序转移等很多功能,系统运作的核心就...

    2024-02-01 02:22:49
  • JS系列:分享 75 个精选的 JavaScript 基础知识点(上)

    JS系列:分享 75 个精选的 JavaScript 基础知识点(上)

    JS系列:分享 75 个精选的 JavaScript 基础知识点(上)

    2024-02-01 02:22:43
  • [LeetCode 874] Maximum Vacation Days

    LintCode wants to give one of its best employees the option to travel amongNcities to collect algori...

    2024-02-01 02:22:14
  • 整数因子分解问题

    Problem Description 大于1 的正整数n可以分解为:n=x1*x2*…*xm。 例如,当n=12 时,共有8 种不同的分式: 12=12; 12=6*2; 12=4*3; 12=3*4; 12=3*2*2; 12=2*6; 12=2*3*2; 12=2*2*3。 编程任务: 对于给定的正整数n,编程计算n共有多少种不同的分解式。 Input

    2024-02-01 02:22:08
  • 操作系统国产化现状

    操作系统国产化现状

    在开源操作系统生态不断成熟的背景下,中国的国产操作系统依托开源生态和政策东风正快速崛起,市场潜力巨大,未来发展前景值得期待。中国桌面操作系统当前呈现两大特征:一是Windows+Inte...

    2024-02-01 02:22:01