GO环境搭建和vim相关配置 on centos7

在centos7上安装go和配置vim相关插件

记录一下配置go和vim插件的过程,以便后续重复安装
这里linux系统是阿里云ECS的centos7.9

SDK下载和配置

首先新的系统更新一下软件包,全程root

yum update

然后下载go的SDK,因为在阿里云中,所以没有考虑额外的网路问题

  1. 下载SDK ,不用云服务器可能要考虑网络问题;
  2. 在 Go 官方网站上,找到适合系统的 Go 版本的下载链接。可以使用以下命令在终端中获取最新版本的下载链接:
curl -sSL https://golang.org/dl/ | grep -o -m1 'https://dl.google.com/go/[^\"]*'

这将输出一个类似 https://dl.google.com/go/go1.20.5.linux-amd64.tar.gz 的链接。

  1. 使用 wget 命令下载 Go 安装包。将上一步获取的下载链接替换为实际的链接:
wget https://dl.google.com/go/go1.20.5.linux-amd64.tar.gz
  1. 解压安装包
tar -xvf go1.20.5.linux-amd64.tar.gz -C /usr/local
rm -f go1.20.5.linux-amd64.tar.gz
  1. 在全局配置文件 /etc/profile 中设置环境变量
export GOROOT=/usr/local/go
export GOPATH=/usr/local/go-project
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

在本地的主机可能需要设置代理

go env -w GOPROXY=https://goproxy.cn
  1. 刷新配置文件
source /etc/profile

检查一下go是否正确安装

go version
  1. 我们检查一下Go是否能够运行
cd $GOPATH
mkdir demo ; cd demo
go mod init demo
mkdir checkSDK
vim checkSDK/hello.go

测试 hello.go ,run一下

package main
import "fmt"
func main(){
	fmt.Println("Hello")
}

到这里,go的基本环境就配置完成,这里说明一下,关于gomodule环境配置变量默认是on没必要改,proxy变量因为是云服务器,网络较好也没必要改,更多的环境变量用到的时候再改

vim插件配置

vim的配置比较繁琐,需要先升级vim到vim8,然后安装vim-plug,==,我们首先先装个git

yum install git

vim8

升级vim到vim8以上,这对后续的vim插件安装很重要

  1. 如果存在vim,那么需要删除旧版本vim
yum list installed | grep –i vim
vim-common.x86_64                     2:7.4.1868-1.el7.centos          @anaconda
vim-enhanced.x86_64                   2:7.4.1868-1.el7.centos          @anaconda
vim-filesystem.x86_64                 2:7.4.1868-1.el7.centos          @anaconda
vim-minimal.x86_64                    2:7.4.1868-1.el7.centos          @anaconda
yum remove vim-enhanced vim-common vim-filesystem vim-minimal
  1. 安装vim8必要环境
yum install gcc-c++ ncurses-devel python-devel
yum install ctags git tcl-devel \
    ruby ruby-devel \
    lua lua-devel \
    luajit luajit-devel \
    python python-devel \
    perl perl-devel \
    perl-ExtUtils-ParseXS \
    perl-ExtUtils-XSpp \
    perl-ExtUtils-CBuilder \
    perl-ExtUtils-Embed
  1. 安装vim8
cd 
wget https://github.com/vim/vim/archive/v8.2.3456.tar.gz
cd vim-8.2.3456
./configure --with-features=huge \
--enable-multibyte \
--enable-rubyinterp \
--enable-pythoninterp \
--enable-perlinterp \
--enable-luainterp \
--enable-gui=no
make
make install
  1. 检查vim版本
vim --version | head -1

出现
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jun 18 2023 00:48:20)
表示安装完成

vim-plug

装vim-go需要的vim插件管理模块

  1. 安装
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

vim-go插件安装

vim ~/.vimrc
---------------------------
  1 syntax on                                                                                                                            
  2 filetype plugin indent on
  3 set backspace=2
  4 set ts=4
  5 set expandtab
  6 set nu
  7 set cursorline
  8 set showmatch
  9 set incsearch
 10 set ignorecase
 11 imap <F6> <C-x><C-o>
 12 " nmap <F8> :TagbarToggle<CR>
 13 inoremap { {<CR><CR>}<Up><Tab>
 14 inoremap ( ()<Left>
 15 inoremap < <><Left>
 16 inoremap [ []<Left>
 17 inoremap " ""<Left>
 18 inoremap ' ''<Left>
 19 
 20 " setup for NERDTREE
 21 " Toggle side window with `CTRL+z`.
 22 "map <C-z> :NERDTreeToggle<CR>
 23 "let g:NERDTreeDirArrowExpandable = '▸'
 24 "let g:NERDTreeDirArrowCollapsible = '▾'
 25 "let NERDTreeShowHidden=1 " Show hidden files
 26 
 27 
 28 " for vim-plug
 29 call plug#begin('~/.vim/plugged')
 30 " Plug 'stamblerre/gocode', { 'rtp': 'vim', 'do': '~/.vim/gocode/vim/symlink.sh' }
 31 Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
 32 " 可以快速对齐的插件
 33 Plug 'junegunn/vim-easy-align'
 34 
 35 Plug 'preservim/nerdtree'
 36 " 用来提供一个导航目录的侧边栏
 37 Plug 'jistr/vim-nerdtree-tabs'
 38 " 可以使 nerdtree 的 tab 更加友好些
 39 Plug 'Xuyuanp/nerdtree-git-plugin'
 40 " 可以在文档中显示 git 信息
 41 Plug 'airblade/vim-gitgutter'
 42 "
 43 Plug 'vim-airline/vim-airline'
 44 "
 45 Plug 'tpope/vim-fugitive'
 46 " 
 47 Plug 'dgryski/vim-godef'
 48 Plug 'stamblerre/gocode', { 'rtp': 'vim', 'do': '~/.vim/gocode/vim/symlink.sh' }
 49 " markdown 插件
 50 Plug 'iamcco/mathjax-support-for-mkdp'
 51 Plug 'iamcco/markdown-preview.vim'
 52 call plug#end()

其中 ‘fatih/vim-go’ 是vim-go插件,其他的插件不是必须的
vim-go安装和其他常用插件的安装详情1 2 3
.vimrc 文件写入插件后,需要进行 :PlugInstallvim +PlugInstall 指令
其中 vim-go 插件需要额外进行 :GoInstallBinaries 指令

如果在 :GoInstallBinaries 中出现i/o timeout 需要在环境变量中改代理

export GOPROXY=https://goproxy.cn

go-code

gocode是一个非常重要的补全插件,安装需要两个步骤4

  1. 在$GOPATH/bin中安装gocode的二进制文件
cd $GOPATH/bin 
go install github.com/mdempsky/gocode@latest
  1. 在vim中装gocode插件,在 .vimrc 文件中的48行已经进行了安装 ,11 行将gocode补全的指令映射为F6

至此基本的vim环境已经配置完成,能够实现语法和括号的自动补全,额外的插件安装待后续补充

演示
hello.go :补全演示

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值