在centos7上安装go和配置vim相关插件
记录一下配置go和vim插件的过程,以便后续重复安装
这里linux系统是阿里云ECS的centos7.9
SDK下载和配置
首先新的系统更新一下软件包,全程root
yum update
然后下载go的SDK,因为在阿里云中,所以没有考虑额外的网路问题
- 下载SDK ,不用云服务器可能要考虑网络问题;
- 在 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 的链接。
- 使用 wget 命令下载 Go 安装包。将上一步获取的下载链接替换为实际的链接:
wget https://dl.google.com/go/go1.20.5.linux-amd64.tar.gz
- 解压安装包
tar -xvf go1.20.5.linux-amd64.tar.gz -C /usr/local
rm -f go1.20.5.linux-amd64.tar.gz
- 在全局配置文件 /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
- 刷新配置文件
source /etc/profile
检查一下go是否正确安装
go version
- 我们检查一下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插件安装很重要
- 如果存在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
- 安装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
- 安装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
- 检查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插件管理模块
- 安装
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 文件写入插件后,需要进行 :PlugInstall 或 vim +PlugInstall 指令
其中 vim-go 插件需要额外进行 :GoInstallBinaries 指令
如果在 :GoInstallBinaries 中出现i/o timeout 需要在环境变量中改代理
export GOPROXY=https://goproxy.cn
go-code
gocode是一个非常重要的补全插件,安装需要两个步骤4
- 在$GOPATH/bin中安装gocode的二进制文件
cd $GOPATH/bin
go install github.com/mdempsky/gocode@latest
- 在vim中装gocode插件,在 .vimrc 文件中的48行已经进行了安装 ,11 行将gocode补全的指令映射为F6
至此基本的vim环境已经配置完成,能够实现语法和括号的自动补全,额外的插件安装待后续补充
演示
hello.go :