在网上看到了一篇不错的关于vim的文章,参考网上给出的资料,花了些时间,将自己的vim打造成一块go语言的IDE。中间因为网路的问题,踩了很多的坑,就在此简单的分享下自己的爬坑经验吧,其实也没经验,主要还是网络。以前的安装经验来自mac,linux下没有尝试。
这一步就不做详细的展开,唯一需要注意的地方就是设置GOPATH环境变量以及将$GOPATH/bin目录加入到环境变量中。
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin:$GOROOT/bin
将其加入到bash或zsh配置文件中,为了环境变量生效一定要source一下配置
mac及linux都会自带vim, 因为一直用mac自带的,在安装YMC插件时踩了很多的坑。最后,将vim重新安装了一遍才解决。所以在此先将vim升级一把, 避免因为版本问题,带来不必要的麻烦。mac下升级
brew install vim
为了使新安装的版本起作用,需要重新启动下命令行工具,这个坑,爬了好久,才出来。
在写程序中,我们常把一些系统需要灵活更改的变量设置到配置文件中,vim也有这样的一个配置文件.vimrc,默认存在用户目录下,vim有着强大的配置参数。个人根据自己的喜好进行定制。当然要把每一个参数的作用都研究透也是需要花费巨大的精力。前人栽树,后人乘凉。一些参数经过很多人的探索,已经成为一种规范,直接拿来主义好了。
" 关闭兼容模式
set nocompatible
set nu " 设置行号
set cursorline "突出显示当前行
" set cursorcolumn " 突出显示当前列
set showmatch " 显示括号匹配
" tab 缩进
set tabstop=4 " 设置Tab长度为4空格
set shiftwidth=4 " 设置自动缩进长度为4空格
set autoindent " 继承前一行的缩进方式,适用于多行注释
" 定义快捷键的前缀,即<Leader>
let mapleader=";"
" ==== 系统剪切板复制粘贴 ====
" v 模式下复制内容到系统剪切板
vmap <Leader>c "+yy
" n 模式下复制一行到系统剪切板
nmap <Leader>c "+yy
" n 模式下粘贴系统剪切板的内容
nmap <Leader>v "+p
" 开启实时搜索
set incsearch
" 搜索时大小写不敏感
set ignorecase
syntax enable
syntax on " 开启文件类型侦测
filetype plugin indent on " 启用自动补全
" 退出插入模式指定类型的文件自动保存
au InsertLeave *.go,*.sh,*.php write
vim要想变的强大,离不来插件的支持。为了便于管理这些插件,就需要一个用来管理插件的插件。这样的插件也很多,最常用要属 Vundle吧,看到有说 vim-plug效率更高所以就选用了vim-plug这个插件。先来安装一把,其实也就是个安装包的下载。
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
安装完成后,在.vimrc配置文件添加配置
" 插件开始的位置
call plug#begin('~/.vim/plugged')
" 需要被管理的插件
" 插件结束的位置,插件全部放在此行上面
call plug#end()
配置就这么简单,在begin和end块之间添加需要被安装或管理的插件 配置如下几个插件,我们即可构建出一个关于go的IDE:
" 插件开始的位置
call plug#begin('~/.vim/plugged')
" 用来提供一个导航目录的侧边栏
Plug 'scrooloose/nerdtree'
" 代码自动完成,安装完插件还需要额外配置才可以使用
Plug 'Valloric/YouCompleteMe'
" go 主要插件
Plug 'fatih/vim-go', { 'tag': '*' }
" go 中的代码追踪,输入 gd 就可以自动跳转
Plug 'dgryski/vim-godef'
" 插件结束的位置,插件全部放在此行上面
call plug#end()
然后输入 :w 保存配置,在输入 :PlugInstall ,如下:
:w
:PlugInstall
插件会自动下载安装,看见上面显示 Finishing ... Done 的内容,插件安装成功
删除插件,只需要将插件在配置中注掉,然后执行:PlugClean
即可完成删除操作。
我们上一步完成vim-go插件的安装,vim-go的使用需要依赖go的一些工具,这些工具存在于目录$GOPATH/bin
可以在.vimrc文件中执行GoInstallBinaries
进行安装,因为这一步需要下载大量的依赖工具,然后会比较耗时,另外非常重要的一点,有一些包是存在于墙外的服务上,所以需要开启访问外国网站。当出现 vim-go: installing finished! 则安装成功!
代码提示,是IDE和编辑器的重要区别,有了代码提示,那么就可以流畅的写代码了。vim中常用的代码提示方案就是这个YouCompleteMe的插件了,这个插件也需要安装依赖。在插件安装那一步中,完成了YouCompleteMe简称(YMC)的安装,这个还需要一个依赖的安装。首先确认vim支持python版本。
这个就需要python3来安装
$cd ~/.vim/plugged/YouCompleteMe
$python3 install.py --go-completer
// 安装子模块
$git submodule update --init --recursive
$python3 install.py --go-completer
因为子模块有一些包在墙外,还是要解决网络的问题。YouCompleteMe号称是vim上最难安装的插件。主要的困难还是来自网络吧,所以,在安装时,先要解决网络的问题。