前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用vim打造go语言IDE

使用vim打造go语言IDE

作者头像
暮雨
发布2019-08-28 11:12:55
3K0
发布2019-08-28 11:12:55
举报
文章被收录于专栏:云端漫步

在网上看到了一篇不错的关于vim的文章,参考网上给出的资料,花了些时间,将自己的vim打造成一块go语言的IDE。中间因为网路的问题,踩了很多的坑,就在此简单的分享下自己的爬坑经验吧,其实也没经验,主要还是网络。以前的安装经验来自mac,linux下没有尝试。

安装go语言环境

这一步就不做详细的展开,唯一需要注意的地方就是设置GOPATH环境变量以及将$GOPATH/bin目录加入到环境变量中。

代码语言:javascript
复制
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin:$GOROOT/bin

将其加入到bash或zsh配置文件中,为了环境变量生效一定要source一下配置

安装vim

mac及linux都会自带vim, 因为一直用mac自带的,在安装YMC插件时踩了很多的坑。最后,将vim重新安装了一遍才解决。所以在此先将vim升级一把, 避免因为版本问题,带来不必要的麻烦。mac下升级

代码语言:javascript
复制
brew install vim

为了使新安装的版本起作用,需要重新启动下命令行工具,这个坑,爬了好久,才出来。

vim的基本配置

在写程序中,我们常把一些系统需要灵活更改的变量设置到配置文件中,vim也有这样的一个配置文件.vimrc,默认存在用户目录下,vim有着强大的配置参数。个人根据自己的喜好进行定制。当然要把每一个参数的作用都研究透也是需要花费巨大的精力。前人栽树,后人乘凉。一些参数经过很多人的探索,已经成为一种规范,直接拿来主义好了。

代码语言:javascript
复制
" 关闭兼容模式
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这个插件。先来安装一把,其实也就是个安装包的下载。

代码语言:javascript
复制
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

安装完成后,在.vimrc配置文件添加配置

代码语言:javascript
复制
" 插件开始的位置
call plug#begin('~/.vim/plugged')

" 需要被管理的插件

" 插件结束的位置,插件全部放在此行上面
call plug#end()

配置就这么简单,在begin和end块之间添加需要被安装或管理的插件 配置如下几个插件,我们即可构建出一个关于go的IDE:

代码语言:javascript
复制
" 插件开始的位置
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 ,如下:

代码语言:javascript
复制
:w
:PlugInstall

插件会自动下载安装,看见上面显示 Finishing ... Done 的内容,插件安装成功

删除插件,只需要将插件在配置中注掉,然后执行:PlugClean即可完成删除操作。

vim-go依赖安装

我们上一步完成vim-go插件的安装,vim-go的使用需要依赖go的一些工具,这些工具存在于目录$GOPATH/bin可以在.vimrc文件中执行GoInstallBinaries进行安装,因为这一步需要下载大量的依赖工具,然后会比较耗时,另外非常重要的一点,有一些包是存在于墙外的服务上,所以需要开启访问外国网站。当出现 vim-go: installing finished! 则安装成功!

YouCompleteMe

代码提示,是IDE和编辑器的重要区别,有了代码提示,那么就可以流畅的写代码了。vim中常用的代码提示方案就是这个YouCompleteMe的插件了,这个插件也需要安装依赖。在插件安装那一步中,完成了YouCompleteMe简称(YMC)的安装,这个还需要一个依赖的安装。首先确认vim支持python版本。

这个就需要python3来安装

代码语言:javascript
复制
$cd ~/.vim/plugged/YouCompleteMe
$python3 install.py --go-completer
// 安装子模块
$git submodule update --init --recursive
$python3 install.py --go-completer

因为子模块有一些包在墙外,还是要解决网络的问题。YouCompleteMe号称是vim上最难安装的插件。主要的困难还是来自网络吧,所以,在安装时,先要解决网络的问题。

最终成果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云端漫记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装go语言环境
  • 安装vim
  • vim的基本配置
  • 插件管理
  • vim-go依赖安装
  • YouCompleteMe
  • 最终成果
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档