deepin搭建go开发环境(git、go、neovim、NvChad、Nerd Font)

这篇具有很好参考价值的文章主要介绍了deepin搭建go开发环境(git、go、neovim、NvChad、Nerd Font)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装deepin虚拟机

官网下载地址
vmware中记得版本选择是debian 10.x 64位
然后就是一些确认操作,然后就可以了

安装git

apt install gedit
apt install git
git config --global user.name "hello"
git config --global user.email hello@126.com
git config --list

ssh-keygen -t rsa 
cd /root/.ssh
gedit id_rsa.pub
# 下面这个可以解决Failed to connect to github.com port 443: 拒绝连接
git config --global url."https://ghproxy.com/https://github.com".insteadOf "https://github.com"

再上传这个id_rsa.pub里的文本(即公钥)
deepin git,git,golang,neovim
输入这行命令以验证是否成功
ssh -T git@github.com

安装golang

  1. 下载
    下载地址
    也可wget https://studygolang.com/dl/golang/go1.20.4.linux-amd64.tar.gz
  2. 解压
  3. 配环境变量
    配置GOROOT(go核心内容的文件夹,即从官网下的那个)和GOPATH(go mod时存储第三方库的文件夹)
    vim /etc/profile
    # 即刚刚解压的压缩包的文件夹
    export GOROOT=/usr/local/env/go
    # 你自己指定一个存第三方库的文件夹
    export GOPATH=/usr/local/env/gopath
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    #保存退出
    :wq
    #配置生效
    source /etc/profile
    
    完全使用命令就是
    echo 'export GOROOT=/usr/local/env/go' >> /etc/profile
    echo 'export GOPATH=/usr/local/env/gopath' >> /etc/profile
    echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> /etc/profile
    source /etc/profile
    
  4. 改下go的配置,即开启module模式和下载的镜像源
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
    
    测试
    go version
    go env
    
  5. 其他
    我发现每次开个新shell,都要重新source /etc/profile才能正常使用go version
    看博客知道要再配一下
    注意每个用户都要配一下这个
    echo 'source /etc/profile' >> ~/.bashrc
    
    这样子每次开新shell就会触发这个命令

安装neovim

参考[经验分享] Deepin
v20下编译安装vim9和neovim9,默认的vim和neovim版本太低

一、编译vim9

  1. 先卸载默认的vim8

    sudo apt purge vim vim-*
    sudo apt autoremove
    
  2. 安装编译依赖

    sudo apt install lua5.3 liblua5.3-dev ruby2.5-dev python3-pip cmake gettext
    
  3. 下载源码

    git clone -b v9.0.1504 https://github.com/vim/vim.git ~/Downloads/vim9
    
  4. 编译与安装

    cd ~/Downloads/vim9
    
    ./configure --prefix=/opt/vim \
        --with-features=huge \
        --enable-multibyte \
        --enable-rubyinterp=yes \
        --enable-python3interp=yes \
        --enable-luainterp=yes \
        --enable-gui=gtk2 \
        --enable-cscope \
        --enable-fail-if-missing
    
    make -j6
    
    sudo make install
    
    sudo ln -s /opt/vim/bin/vim /usr/local/bin/vim
    

二、编译neovim

  1. 下载源码
    git clone -b v0.9.0 https://github.com/neovim/neovim.git ~/Downloads/neovim9
    
  2. 编译与安装
    注意第二行的下载操作,可能会总是拉取不到github的项目,实在不行就进浏览器手动下,然后放在对应的位置,下载网址和放置路径在dos里都有展示
    cd ~/Downloads/neovim9
    make CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=/opt/neovim"
    sudo make install
    sudo ln -s /opt/neovim/bin/nvim /usr/local/bin/nvim
    
  3. 测试
    输入nvim test.txt
  4. 起别名,使vim命令会打开nvim
    echo "alias vim='nvim'" >> /etc/profile
    source /etc/profile
    

treesitter报错可以不用管

  • 安装NvChad
    Turning Neovim into an advanced IDE
    参考视频针对Golang的NeoVim完美配置

    git clone https://github.com/NvChad/NvChad.git ~/.config/nvim
    

    然后输入nvim
    deepin git,git,golang,neovim
    然后输入N
    然后等他把相关的插件下完(好像挂着梯子下快一点?)
    到这个界面就是下好了
    deepin git,git,golang,neovim
    然后输入空格 th来选主题
    deepin git,git,golang,neovim

  • 两个的卸载方法:
    删除~/.local/state/nvim~/.local/share/nvim~/.config/nvim

安装go的lsp

cd /root/.config/nvim/lua/custom
touch plugins.lua

plugins.lua中写入如下内容

local plugins = {
	{
		"williamboman/mason.nvim",
		opts = {
			ensure_installed = {
				"gopls",
			},
		},
	},
}
return plugins

再在/root/.config/nvim/lua/custom/chadrc.lua中做如下添加

M.plugins = "custom.plugins

deepin git,git,golang,neovim
然后退出vim,再输入vim,输入命令:MasonInstallAll
此时等一小会会出现
deepin git,git,golang,neovim

再添加如下

{
    "neovim/nvim-lspconfig",
    config = function()
      require "plugins.configs.lspconfig"
      require "custom.configs.lspconfig"
    end,
},

deepin git,git,golang,neovim

如果使用可视化的编辑器,可能会出现
E37: No write since last change
E162: No write since last change for buffer “xxxxx”
Press ENTER or type command to continue
这时用
:set fileencoding=utf-8

然后

mkdir /root/.config/nvim/lua/custom/configs
touch configs/lspconfig.lua

在lspconfig.lua中写入

local on_attach = require("plugins.configs.lspconfig").on_attach
local capabilities = require("plugins.configs.lspconfig").capabilities

local lspconfig = require("lspconfig")
local util = require "lspconfig/util"

lspconfig.gopls.setup {
	on_attach = on_attach,
	capabilities = capabilities,
	cmd = {"gopls"},
	filetypes = {"go","gomod","gowork","gotmpl"},
	root_dir = util.root_pattern("go.work","go.mod",".git"),
}

再加一点设置,使得nvim里面可以自动导go的包、未使用警告等

settings = {
		gopls = {
			completeUnimported = true,
			usePlaceholders = true,
			analyses = {
				unusedparams = true,
			},
		},
	},

deepin git,git,golang,neovim

…不想写了,跟着视频配吧

安装Nerd字体

ubuntu系统添加新的字体——JetBrains Mono 字体添加实例
字体下载网站

用jetbrains mono即可

deepin git,git,golang,neovim

deepin git,git,golang,neovim

nvim-tree

自带,在normal模式下用ctrl n唤出
ctrl hctrl l切换左右

其他

输入:Lazy进入包管理界面

总结

/root/.config/nvim/lua/custom/chadrc.lua

---@type ChadrcConfig 
 local M = {}
 M.ui = {theme = 'catppuccin'}
 M.plugins = "custom.plugins"
 M.mappings = require "custom.mappings"
 return M

/root/.config/nvim/lua/custom/mappings.lua

local M ={}

M.dap = {
  plugin = true,
  n = {
    ["<leader>db"] = {
      "<cmd> DapToggleBreakpoint <CR>",
      "Add breakpoint at line"
  },
  ["<leader>dus"] = {
      function ()
        local widgets = require("dap.ui.widgets");
        local siderbar = widgets.sidebar(widgets.scopes);
      end,
      "Open debugging sidebar"
    }
        }
}

M.dap_go = {
  plugin = true,
    n = {
      ["<leader>dgt"] = {
        function()
          require("dap-go").debug_test()
        end,
        "Debug go test"
    },
    ["<leader>dgl"] = {
      function()
          require("dap-go").debug_test()
      end,
      "Debug last go test"
    }
  }
}
return M

/root/.config/nvim/lua/custom/plugins.lua

local plugins = {
        {
                "williamboman/mason.nvim",
                opts = {
                        ensure_installed = {
                                "gopls",
                        },
                },
        },
        {
                "mfussenegger/nvim-dap",
                init = function()
                        require("core.utils").load_mappings("dap")
                end
        },
        {
                "leoluz/nvim-dap-go",
                ft = "go",
                dependencies = "mfussenegger/nvim-dap",
                config = function(_,opts)
                        require("dap-go").setup(opts)
                        require("core.utils").load_mappings("dap_go")
                end
        },  
        {
                "neovim/nvim-lspconfig",
                config = function()
                        require "plugins.configs.lspconfig"
                        require "custom.configs.lspconfig"
                end,
        },
        {
                "jose-elias-alvarez/null-ls.nvim",
                ft = "go",
                opts = function()
                        return require "custom.configs.null-ls"
                end,
        },
        {
                "olexsmir/gopher.nvim",
                ft="go",
                config = function(_,opts)
                        require("gopher").setup(opts)
                end,
                build = function()
                        vim.cmd [[silent! GoInstallDeps]]
                end,
        },
}
return plugins

/root/.config/nvim/lua/custom/configs/lspconfig.lua

local on_attach = require("plugins.configs.lspconfig").on_attach
local capabilities = require("plugins.configs.lspconfig").capabilities

local lspconfig = require("lspconfig")
local util = require "lspconfig/util"

lspconfig.gopls.setup {
        on_attach = on_attach,
        capabilities = capabilities,
        cmd = {"gopls"},
        filetypes = {"go","gomod","gowork","gotmpl"},
        root_dir = util.root_pattern("go.work","go.mod",".git"),
        settings = {
                gopls = {
                        completeUnimported = true,
                        usePlaceholders = true,
                        analyses = {
                                unusedparams = true,
                        },
                },
        },
}

/root/.config/nvim/lua/custom/configs/null-ls.lua

local null_ls = require("null-ls")
local augroup = vim.api.nvim_create_augroup("LspFormatting",{})


local opts = {
        sources = {
                null_ls.builtins.formatting.gofmt,
                null_ls.builtins.formatting.goimports_reviser,
                null_ls.builtins.formatting.golines,
        },
        on_attach = function(client,bufnr)
                if client.supports_method("textDocument/formatting") then
                        vim.api.nvim_clear_autocmds({
                                group = augroup,
                                buffer = bufnr,
                        })
                        vim.api.nvim_create_autocmd("BufWritePre",{
                                group = augroup,
                                buffer = bufnr,
                                callback = function()
                                        vim.lsp.buf.format({bufnr = bufnr})
                                end,
                        })
                end
        end,
}

设置在vim中可以复制到系统剪贴板

apt install xclip

创建init.vim

vim ~/.config/nvim/init.lua

然后加入一行

vim.o.clipboard = "unnamedplus"

然后发现之后用y复制时,在浏览器里面也可以粘贴这个内容了
同时在别的地方ctrl+c复制,在vim里也可以用p粘贴文章来源地址https://www.toymoban.com/news/detail-727572.html

到了这里,关于deepin搭建go开发环境(git、go、neovim、NvChad、Nerd Font)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • go语言vscode集成开发环境搭建

    目录 本篇概要 集成开发环境工具(ide) Goland或IntelliJ IDEA Visual Studio Code 其他集成开发环境 Visual Studio Code的go语言开发环境搭建 Visual Studio Code安装 go编译环境安装 配置go环境变量 安装go语言插件 使用golang编程 本篇小结 下篇预告 搭建go语言环境,除了要搭建go语言的编译环境

    2024年02月13日
    浏览(71)
  • 1.go语言vscode集成开发环境搭建

    目录 本篇概要 集成开发环境工具(ide) Goland或IntelliJ IDEA Visual Studio Code 其他集成开发环境 Visual Studio Code的go语言开发环境搭建 Visual Studio Code安装 go编译环境安装 配置go环境变量 安装go语言插件 使用golang编程 本篇小结 下篇预告 搭建go语言环境,除了要搭建go语言的编译环境

    2024年02月12日
    浏览(52)
  • 1 Go语言开发环境搭建详细教程+go常见bug合集【Go语言教程】

    官网地址:golang.org,因为一些原因国内可能无法访问。可以使用下面第二个链接。 国内地址访问:https://golang.google.cn/dl或者https://www.golangtc.com/download 根据自己操作系统版本,下载安装即可,目录尽量选择全英文且没有空格和其他其他特殊字符。 2.1 Windows下 GOPATH:即默认的w

    2024年02月05日
    浏览(45)
  • 【30天熟悉Go语言】2 Go开发环境搭建、Hello World程序运行

    Go系列文章: GO开篇:手握Java走进Golang的世界 Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html 1 进入到Go官网(https://golang.org),点击Download按钮; 2 选择操作系统对应的环境版本(图形化安装),进行下载,比如博主的windows: 3 下载完一路安装,博主的安装目录如下

    2024年02月06日
    浏览(52)
  • 一个golang小白使用vscode搭建Ununtu20.04下的go开发环境

    先交代一下背景,距离正式接触golang这门语言已经有5年时间,平时偶尔也会用go写写工具和功能,但其实充其量就是语言小白,基本上就是按照教程配置好环境,按照需求写写逻辑,能跑起来就行了。golang随着这几年的变化,这门语言的变化还是非常大的,之前写过一篇《

    2024年01月22日
    浏览(73)
  • 从零开始搭建Springboot开发环境(Java8+Git+Maven+MySQL+Idea)

    所谓万事开头难,对于初学Java和Springboot框架的小伙伴往往会花不少时间在开发环境搭建上面。究其原因其实还是不熟悉,作为在IT界摸爬滚打数年的老司机,对于各种开发环境搭建已经了然于胸,自己当年也是这么过来的。 今天我就毕其功于一役,解放大家的时间,让凡人

    2024年04月17日
    浏览(82)
  • go语言-Go环境搭建

    切换root权限 su root 进入用户列表 cd /usr/local/ tar -zxvf go1.13.linux-amd64.tar.gz vi /etc/profile source /etc/profile go env /bin: 存放编译后的二进制文件 /pkg 存放编译后的库文件-module /src 存放源码文件 切换到对应目录下

    2024年02月08日
    浏览(49)
  • 巨详细一站式VScode+ESP-IDF开发环境搭建教程,附带Python和Git安装教程、安装出错踩坑经验

    VScode+ESP-IDF开发环境搭建教程,附带Python和Git安装教程、安装出错踩坑经验、最新版安装包,文末附带神奇的免安装版!! 巨详细一站式VScode+ESP-IDF的开发环境搭建教程,附带Python和Git安装教程、安装出错踩坑经验,以及免安装版,小白跟我无脑操作也能一次点亮,文章最后附最

    2024年02月16日
    浏览(62)
  • [ 环境搭建篇 ] Windows 安装 go 环境并配置环境变量(附go.1.20.2安装包)

    这里安装的是 Go 语言最新版本,也就是 go.1.20.2 版本为例,操作系统为 Windows10 操作系统。 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一

    2024年02月09日
    浏览(89)
  • 【Go】Go语言开发环境安装

    安装环境 :Winowds 我现在是win7安装的,与win10整体步骤是一样的,只是部分显示的时候有点差异不影响; 【名词】 编译器 :先将代码编译成可执行文件,再执行; —全文翻译 适用语言: C C++ Java Go 解释器 :不用将代码编译,直接可以执行; —实时翻译 适用语言: Python

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包