VIM Go的IDE搭建图解

Wesley13
• 阅读 993

响应号召,咋们不翻墙

安装总体流程

  • go安装
  • 查看vim是否支持python插件编写;
  • 下载vundle,管理vim的各种插件;
  • 配置.vimrc, 用于表现vim的功能行为,包括:颜色、字体、布局、IDE等
  • 因为要安装go的IDE,没有翻墙,则需要github下载golang官方的tools包
  • vim相关插件安装

Go安装

## 下载go可执行文件
wget -i https://redirector.gvt1.com/edgedl/go/go1.9.2.linux-amd64.tar.gz

mkdir -P /data/env/golang

tar -zxvf go1.9.2.linux-amd64.tar.gz -C /data/env/golang/

## 建立软连接,方便升级
ln -s /data/env/golang/go1.9.2 default

## 建立go的全局变量环境
sudo vim /etc/profile

## 在profile文件中添加
*****************************************
### golang
export GOROOT="/data/env/golang/default"
export PATH = "$PATH:$GOROOT/bin"
*****************************************
sudo source /etc/profile

## 切到自己的账户环境下
cd ~
mkdir -P  ~/godev/src ~/godev/bin ~/godev/pkg

vim .profile

### 在.profile文件中添加:
******************************************
export GOPATH=$HOME/godev
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
******************************************

## 用户环境变量配置生效
source .profile 

相关准备工作

一般情况下,如果你是用的Linux各个发行版,如:Ubuntu,RedHat、CentOS、Debian等等,vim编辑器都是功能裁剪版本,如果要完善的vim,则你需要重新源码编译安装vim编辑器。

这篇文章发布的时候,github的vim master分支是8.0版本,原生默认没有加入python插件编写

git clone https://github.com/vim/vim
cd vim
## 此处有坑,一般有些开发者没有指定各个参数的默认值,其实很多参数默认值是no
## python的配置config指定位置正确
## 支持python、lua、ruby和perl插件编写
./configure --with-features=huge --enable-pythoninterp=yes --enable-rubyinterp=yes --enable-luainterp=yes --enable-perlinterp=yes --with-python-config-dir=/usr/lib/python2.7/config/ --enable-gui=gtk2 --enable-cscope --prefix=/usr  
## 一般make或者make install不要这样使用`make && make install`
## make 完成后,用`echo $?`命令校验下,返回值:0,表示成功。make install也是一样
sudo make
sudo make install

vim安装完成后查看,然后查看vim版本号中的python是否支持

vim --version | grep python
## 输出结果: 
+cryptv          +linebreak       +python          +viminfo
+cscope          +lispindent      -python3         +vreplace
## 上面的结果中含有"+python", 表示vim已支持python插件编写。
## 支持python插件编写的原因:
## 我们安装vim-go的插件时会用到YouCompleteMe这个插件安装,它需要python插件编写支持。否则vim不好使

## 输出结果:
+cryptv          +linebreak       -python          +viminfo
+cscope          +lispindent      -python3         +vreplace
## 上面的结果中不含有"+python", 是因为vim编译出来的可执行文件没有进行拷贝

sudo mv src/vim  /usr/local/bin/vim
## 然后在执行vim --version | grep python

下载bundle,配置.vimrc文件

## bundle用于vim的插件管理,自身的vim插件管理容易混乱
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

touch ~/.vimrc
## 并把我配置好的文件拷贝到.vimrc文件中,表现vim的行为
## 插件是使用vundle统一安装,所以是在.vimrc文件的
## call vundle#begin()
## call vundle#end() 之间放入你要安装的插件

## 例如:你要安装好看的vim呈现风格:字体样式。你可以在中间放入这个字体插件
Plugin 'altercation/vim-colors-solarized'

## .vimrc配置文件

.vimrc配置文件

安装插件和下载插件

在命令行输入vim进入vim命令行模式:

## 插件安装
:PluginInstall 

## 因为要安装go的集成开发环境,所以你会在这里遇到被墙的问题,好在google公司把这些包放在的github上,牛逼轰轰
cd ~/godev/src/
make -P golang.org/x
git clone https://github.com/golang/tools

## vim-go的插件安装, 安装完成后,你的vim基本就ok了
:GoInstallBinaries

安装后,写go代码,截图如下: VIM Go的IDE搭建图解

参考文献

  1. vim-go
  2. tools
  3. 所需即所获IDE
  4. vim
  5. 配置 VIM 的 Go 语言开发环境
  6. vim与IDE的比较

问题列表

  1. 如果你用mac安装vim版本时,可能会出现“Operation not permitted error while installing on Mac OS X”错误?

    答: 因为苹果加入了保护机制,不能修改/usr/bin下面的任何文件。所以./configure时 prefix指定为/usr/local就ok了. 具体见:https://github.com/tstack/lnav/issues/295;

  2. "YouCompleteme unavailable : no module named future"

    答:

    Great. To everyone encountering the issue, open a terminal, go to YCM folder (typically ~/.vim/bundle/YouCompleteMe), and run the following command:

    git submodule update --init --recursive If you still get the error, report back with a comment including your OS, your Vim version (vim --version), and the output of the command:

    :py import pprint; pprint.pprint(sys.path) inside Vim.

  3. 如果遇到其他有关问题,查找工具YouCompleteMe

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这