vim 打造Go语言IDE

之前在51cto写过一篇vim补全插件youcompleteme的安装方法,主要针对python的,今天写一篇关于go的,其实大同小异。过几天把那篇也搬运过来。

先把主要的框架和步骤整理上来,主要是安装过程中的出错信息。再完善吧,没时间。

  1. 安装vim插件管理工具vundle
  2. 安装Go语言代码检查和高亮插件vim-go
  3. 安装语言自动补全工具YouCompleteMe
  4. 安装代码结构展示插件Tagbar
  5. 安装目录结构展示插件NERDTree
  6. 附:vim配色方案

1。1-安装vim插件管理工具vundle

vundle官方网址:https://github.com/VundleVim/Vundle.vim

输入:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
1
1.2 打开~/.vimrc,进行配置
set nocompatible              
filetype off      

set rtp+=~/.vim/bundle/Vundle.vim           

call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end()       

filetype plugin indent on    
2-安装Go语言代码检查和代码高亮插件vim-go

vim-go官方网址:https://github.com/fatih/vim-go  安装这些插件的好方法还是先,或者先用git clone 下载下来。

安装方法
2.1 利用vundle进行安装
在~/.vimrc文件中的vundle插件配置处加上

Plugin 'fatih/vim-go'
1
然后用vim打开一个任意文件,在命令模式下执行

:PluginInstall
1
即会自动进入插件的安装,安装完毕会显示”Done !”。同理还可以在这里更新插件,更多用法可参考官方网址的指南。


 

注:在安装vim-go的过程中遇到的问题:

vim-go插件需要vim7.4.xxxx以上版本,centos正好低于这个版本,网上看到说vim8.0比7.4功能增加太多,不如直接升级到vim8.0.

升级步骤如下:

yum remove vim -y   

yum remove -y vim-enhanced    先卸载旧的

yum install ncurses-devel 
wget https://github.com/vim/vim/archive/master.zip          (也可以用git clone https://... 我下载的zip包解压不了不知道什么原因,所以用的git clone)
unzip master.zip
cd vim-master
cd src/
./configure
make
sudo make install
vim

----------------------------------------

安装完成插件(:PluginInstall)后还要安装该插件vim-go的依赖库, 重新进入VIM, 执行命令

:GoInstallBinaries

执行该命令需要连网,关键在于科学上网,否则不能自动下载依赖,我花了近半个小时才安装好。

 

由于有些命令文件是无法自动安装完成,这就需要手动进行安装啦。首先对比目录,看缺少哪些命令没有安装完成,然后使用go  get 去安装,也可以去gitHub上搜索,找到对应的命令源码之后,使用git clone 下载到本地,然后使用 go install命令进行安装即可。

安装该依赖组件时有一个库出错问题,如下:

vim-go: could not find 'gopls'. Run :GoInstallBinaries to fix it
处理 function 14_GoInstallBinaries[133]..go#lsp#Restart 时发生错误:

它说用GoInstallBinaries来fix it, 但是重新打开vim尝试使用该命令时又报错:

------------------------

vim-go: could not find 'gopls'. Run :GoInstallBinaries to fix it
处理 function 14_register[9]..go#lsp#DidOpen 时发生错误:
第   19 行:
E117: Unknown function: sendMessage
vim-go: gopls not found. Installing golang.org/x/tools/gopls@latest to folder /root/go/bin/
Error installing golang.org/x/tools/gopls@latest: go: cannot find main module; see 'go help modules'^@
vim-go: could not find 'gopls'. Run :GoInstallBinaries to fix it
处理 function 14_GoInstallBinaries[133]..go#lsp#Restart 时发生错误:
第    7 行:
E18: :let 中出现异常字符

--------------------------------

网上查据说是与go的版本有关,go11.1版本有问题,升级到12就没事,我因为担心破坏原来go环境,所以没升采用的以下方法:

export GO111MODULE=off   将该环境变量设置为off

go get golang.org/x/tools/gopls    使用go get 手动下载该依赖,下载前需要先设置好GOPATH

大家想尝试其他方法的可以参考以下几篇帖子:

https://github.com/golang/go/issues/26639

https://github.com/golang/go/issues/31997

https://blog.csdn.net/yuexiazhufeng/article/details/84570680

终于装好vim-go了,等待 Vim-go依赖的工具自动安装,如果安装成功后,会在 $GOPATH/bin 目录下生成。

2.2 在~/.vimrc文件中配置
在~/.vimrc文件中进行代码高亮配置(默认不高亮)

let g:go_highlight_types = 1
let g:go_highlight_fields = 1
let g:go_highlight_functions = 1
let g:go_highlight_function_calls = 1
let g:go_highlight_operators = 1
let g:go_highlight_extra_types = 1
 ———————————————— 
 

3-安装语言自动补全工具YouCompleteMe

轮到这个重量级大杀器了,被称为vim中最好用的代码补全工具。

YCM功能强大,可实现多种语言的代码补全 
YCM官方网址:https://github.com/Valloric/YouCompleteMe

3.1 利用vundle进行安装
在~/.vimrc文件中的vundle插件配置处加上

Plugin 'Valloric/YouCompleteMe'
1
然后用重新打开vim编辑器,在命令模式下执行

:PluginInstall
1
即会自动进入插件的安装,安装完毕会显示”Done !”。安装需要的时间视网络情况而定,我用了大概20分钟。

我在安装完成后报错,提示需要重启"Restart YCM", 但是重启了也不行,有一个办法是这样,我用了好使,不知道别人管不管用:

cd ~/.vim/bundle/YouCompleteMe/

./install.sh 不加参数,执行完成后,重启VIM就没有报错了。

3.2 编译
YMC安装完毕后还要进行编译方可使用,在编译时可选择语言,这里选择go语言

cd ~/.vim/bundle/YouCompleteMe/
./install.sh --go-completer
 ———————————————— 
我除了安装go补全,还安装了Python补全:

./install.sh --go-completer --clang-completer

安装成功的信息如下:

[100%] Built target ycm_core
-- The C compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Found PythonLibs: /usr/lib64/python2.7/config/libpython2.7.so (found version "2.7.5") 
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/regex_build_MdMFGU
Scanning dependencies of target _regex
[100%] [100%] Building C object CMakeFiles/_regex.dir/regex_2/_regex_unicode.c.o
Building C object CMakeFiles/_regex.dir/regex_2/_regex.c.o
Linking C shared library /root/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/cregex/regex_2/_regex.so
[100%] Built target _regex
main.go:15:2: use of internal package golang.org/x/tools/internal/lsp/cmd not allowed
main.go:16:2: use of internal package golang.org/x/tools/internal/tool not allowed

-----------------------------

./install.sh 编译安装时,遇到错误:可能是不能连接外网的原因,需要解决科学上网。

*****如果要安装python补全功能,可能需要做以下操作:

yum install -y bzip2-devel bzip2-libs

yum install -y python-devel

yum install -y cmake make gcc gcc-c++

之后再编译安装:

cd ~/.vim/bundle/YouCompleteMe

./install.py --clang-complete

下面为设置Vimrc的配置:

vim 打造Go语言IDE_第1张图片

4-安装代码结构展示插件Tagbar
Tagbar官方网址:https://github.com/majutsushi/tagbar

安装方法
4.1 安装前准备
安装gotags: 
1、gotags是go语言编写的,直接使用go get命令安装:

go get -u github.com/jstemmer/gotags
1
2、安装ctags:

yum install ctags -y
 ———————————————— 

4.2 利用vundle进行安装
在~/.vimrc文件中的vundle插件配置处加上

Plugin 'Tagbar'
1
然后用vim打开一个任意文件,在命令模式下执行

:PluginInstall
1
即会自动进入插件的安装,安装完毕会显示”Done !”。 
安装好Tagbar插件后,用vim打开go文件,输入“:Tagbar”就可以打开Tagbar
 ———————————————— 

5-安装目录结构展示插件NERDTree
NERDTree官方网址:https://github.com/scrooloose/nerdtree

安装方法
5.1 利用vundle进行安装
在~/.vimrc文件中的vundle插件配置处加上

Plugin 'scrooloose/nerdtree'
1
然后用vim打开一个任意文件,在命令模式下执行

:PluginInstall
1
即会自动进入插件的安装,安装完毕会显示”Done !”。 
安装好Tagbar插件后,用vim打开go文件,输入“::NERDTree”就可以打开:NERDTree
 ———————————————— 

原文链接:https://blog.csdn.net/hsiffish/article/details/82313792

@@@安装vim配色方案
安装方法
1 利用vundle进行安装
在~/.vimrc文件中的vundle插件配置处加上

Plugin 'fatih/molokai'
1
然后用vim打开一个任意文件,在命令模式下执行

:PluginInstall
1
即会自动进入插件的安装,安装完毕会显示”Done !”。

2 在~/.vimrc文件中配置
在~/.vimrc文件中进行配置:

let g:rehash256 = 1
let g:molokai_original = 1
colorscheme molokai
 ———————————————— 
 

这里采用vim-go插件大神使用的一个配色方案,如下: 

è¿éåå¾çæè¿°

 

参考链接:https://blog.csdn.net/hsiffish/article/details/82313792

http://www.10qianwan.com/articledetail/320937.html

你可能感兴趣的:(Vim)