VIM插件管理

vim for golang

还在抱怨vim没有好用的IDE吗?本文介绍一款vim插件管理利器Vundle,以及常用的vim插件。

  • vim插件管理器Vundle
  • 常用的vim插件

前期准备:

  1. 安装vim
sudo apt-get install vim
  1. 安装go
sudo apt install golang-go
  1. go环境配置
    go安装好了,可以用go env看一下环境变量。
  • GOROOT: 就是go的安装目录,一般不用改
  • GOPATH: 可以理解为工作目录
  • GOBIN:
    GOPATH目录下,一般有三个子目录
    —bin:可执行文件路径
    —pkg:golang编译包时,生成的.a文件目录
    —src:源码目录。

在~/目录下,把这必要环境变量写到文件.bash_profile中,如果没有.bash_profile,创建一个。

export GOPATH=/home/zdchu/go/gopath
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

使配置生效:

source ~/.bash_profile

一、vim插件管理器Vundle

Vundle是基于Git仓库的插件管理软件。Vundle将插件的安装简化为类似yum软件安装的过程
只要:PluginInstall插件就安装完了,:PluginClean之后插件就卸载了。
1. Vundle安装

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

2. vimrc配置
在.vimrc末尾,加上vundle配置:

set nocompatible              " be iMproved, required
filetype off                  " required
" 启用vundle来管理vim插件
set rtp+=~/.vim/bundle/Vundle.vim

" vundle 管理的插件列表须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
filetype plugin on

二、常用的vim插件

1. NERDTree------>文件目录树

  • 简介
    NERDTree是一个针对文件夹以目录树的形式呈现的插件。

  • 配置

Plugin 'scrooloose/nerdtree'  
map <F7> :NERDTreeToggle<CR>   "F7打开NERDTree
let NERDTreeWinSize = 25       "窗口大小
let g:NERDTreeWinPos="left"    "窗口在左侧

2. vim-go------>强大到可怕

Plugin 'fatih/vim-go'

安装好vim-go后,打开.go文件时,基础功能如语法高亮有了,保存时自动gofmt也有了,一些高级功能如自动Import缺失的package,自动补全,函数跳转等功能还没有,需要安装vim-go依赖库

  • vim-go依赖库
    用命令 :GoInstallBinaries安装。如果已经安装好了,可以用:GoUpdateBinaries更新。
    在国内,一般是翻墙才能成功安装。
    解决办法:先下载工具包,再安装
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/tools.git
git clone https://github.com/golang/lint.git
:GoInstallBinaries

成功安装在GOAPTH/bin目录下。
注:我们也可以去https://gopm.io/这里下载包。
强大的指导手册,一定要看哦
以上配置好,函数跳转godef等强大功能就可以用啦,但是你会发现函数和实例都是一个颜色,不能一眼就看出来哪个是函数,以下是高级配置

在这里插入代码片

2. YouCompleteMe—>实时自动补全

  • 简介
    写代码时,实时自动补全功能。YCM
  • 配置
Plugin 'Valloric/YouCompleteMe'

###2. Ctags------>函数跳
ctags:大多数 Unix 系统都能找到。只支持 C。只有基本的功能;
Exuberant_ctags:它支持 C、C++、Java、Fortran、Python、Eiffel、PHP等41种语言
总结来讲,Exuberant_ctags其它就是ctags的多语言实现。
安装:

sudo apt-get install exuberant-ctags
进入项目目录,执行:

ctags -R

注:在更新项目代码时,都要执行这句哦。
此时,在当前目录下生成一个tags文件,再执行

vim
: set tags = 项目目录/tags

该命令将tags文件加入到vim中来, 你也可以将这句话放到~/.vimrc中去, 如果你经常在这个工程编程的话.

最佳实践
pull/update代码后,在项目代码目录下,执行以下:

ctags -R
vim
:set tags = ./tags

常见用法
ctrl+ ]:跳到光标所在函数或者结构体的定义处
ctrl+ t:返回查找或跳转(其实可以用ctrl+o返回,ctrl+i再进入)

3. Tagbar------>变量及函数列表

tagbar是一个taglist的替代品,比taglist更适合c++使用,函数能够按类区分,支持按类折叠显示等,显示结果清晰简洁
tagbar/taglist做的仅仅是将tag文件中的内容解析完后显示在Vim上而已。tag扫描以及数据文件的生成则是由ctags(Exuberant Ctags)这一工具完成的,所以在使用tagbar/taglist之前,你的电脑需要装有ctags。
安装ctags

sudo apt-get install exuberant-ctags
  • 效果图

这里写图片描述

  • 配置
Plugin 'majutsushi/tagbar'     "taglist的增强版,依赖于ctags,用来查看函数,通常放在右侧
" for tagbar plugin
"设置tagbar使用的ctags的插件,必须要设置对,这一步也不一定,安装ctags时会自动加环境变量
let g:tagbar_ctags_bin='/usr/bin/ctags'
let g:tagbar_width=30   "设置tagbar的窗口宽度  
let g:tagbar_right=1    "设置tagbar的窗口显示在右侧,其它默认也是在右侧
let g:tagbar_sort = 0   "设置标签不排序,默认排序 
"打开文件自动 打开tagbar  
autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx,*.java call tagbar#autoopen()
map <F8> :TagbarToggle<CR>   " F8打开Tagbar

4. cscope------>强大的查询


1. vundle老版新版安装
2. 插件:taglist和nerdtree
3. vim配置

猜你喜欢

转载自blog.csdn.net/wwyl1001/article/details/82721595