Vim-Go环境搭建
Vim-Go环境搭建
https://www.cnblogs.com/qcloud1001/p/10072325.html
https://www.cnblogs.com/chris-cp/p/5846640.html
https://blog.csdn.net/u014451076/article/details/52977223 具体安装细节,无法下载的包
https://www.aliyun.com/jiaocheng/131859.html 升级源
sudo apt-get install vim-gnome
如果说在Linux环境下,什么编辑器最好用,如果我说是VIM,估计会有一大部分人嗤之以鼻,怎么可能。VIM可能是他用过众多编辑器最难用的一个。在我司用的是云虚拟机,说实话吧,这里吐槽一下,是真的卡,没开几个网页,打开几个软件就卡的不要不要的,后来码代码的时候,能用Linux机器我就尽量使用Linux环境,如果读者正好也是一名Gopher的话,那我就强烈建议你使用VIM,Vim-go是当前使用最为广泛的用于搭建Golang开发环境的vim插件。好了,废话不多说,看我搭建好的界面吧。
img图 Go-Vim界面
看到这个界面,读者是不是不认识了,这就对了,是不是觉得很炫酷,其实Vim有很多的插件,可以把Vim打造的非常棒,等读者查阅相关资料,清楚Vim的各种参数的时候,就可以根据自己的喜好,搭建不同风格的Go开发环境啦。So废话不多说,开整。(建议先看完《跟我学Docker》的第一章部分)
1.1 环境准备
能成功从gitHub拉取代码,Go编译器安装完成之后,就可以在搭建Go-Vim啦。首先是在当前用户的HOME目录下创建 .vim 目录和 .vimrc 文件:
librant@ubuntu:~$ mkdir .vim
librant@ubuntu:~$ touch .vimrc
创建完成之后,进入到 .vim 中,下载插件 Vim 的插件管理器bundle:
librant@ubuntu:~/.vim$ mkdir bundle
然后进入到 bundle 目录中,安装Vundle.vim:
librant@ubuntu:~/.vim/bundle$ git clone git clone https://github.com/VundleVim/Vundle.vim.git
下载完成之后,会在当前目录下生成 Vundle.vim 目录
同样进入到 bundle 目录中,安装Vim-go:
librant@ubuntu:~/.vim/bundle$ git clone https://github.com/fatih/vim-go.git
下载完成之后,会在当前目录下生成 vim-go 目录
1.2 插件安装
~/(用户$HOME) 目录下已经有 .vimrc文件就不需要再创建了。(" 为注释部分)。
1.2.1 安装Vundle.vim
在 .vimrc 文件中添加如下配置:
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
call vundle#end()
filetype plugin indent on
保存后,退出。
1.2.2 安装Vim-go
继续编辑 .vimrc文件,在call vundle#begin()和call vundle#end()之间再添加如下配置:
Plugin 'fatih/vim-go'
保存后,重新打开 vim 编辑器,在命令行的模式输入:PluginInstall
:PluginInstall
执行之后会在左侧出现需要安装的插件列表,右侧是.vimrc文件。如图1-2-2所示:
img图 1-2-2 Vim插件安装界面
刚执行时,左下角会出现 Processing的过程,需要稍微等一会儿,这是在下载代码,安装完成之后,左下角将出现Done!的单词,表示已经安装完成。
1.2.3 安装 go.tools Binaries
Vim-go安装中需要使用到Go的相关的二进制工具。由于历史的原因,在google上的工具是无法自行下载安装的,在gitHub上的工具是可以安装成功的。
首先打开 .vimrc 文件,切换到命令行模式,执行 GoInstallBinaries 命令自行安装。
:GoInstallBinaries
等待 Vim-go依赖的工具自动安装,如果安装成功后,会在 $GOPATH/bin 目录下生成。安装完成后如图1-2-3所示:
img图 1-3-2 vim-go依赖的命令文件
由于有些命令文件是无法自动安装完成,这就需要手动进行安装啦。首先对比目录,看缺少哪些命令没有安装完成,然后去gitHub上搜索,找到对应的命令源码之后,使用git clone 下载到本地,然后使用 go install命令进行安装即可。前面已经讲解过如何安装啦,这里就不再赘述。
相关工具的gitHub路径:
golint: https://github.com/golang/lint.git
gocode: https://github.com/nsf/gocode.git
errcheck: https://github.com/kisielk/errcheck.git
gotags: https://github.com/jstemmer/gotags.git
(缺少什么工具,基本都可以找到的,这里就不一一列举了)
1.3 VIM主题颜色
Vim的主题颜色保存在 /usr/share/vim/vim80/colors 目录下保存,如果目录下没有的主题,就需要自己进行下载了。下载到此目录的颜色主题,将可以被所有用户使用,如果只需要在当前用户下使用,可以将下载的主题放在 ~/.vim/colors 目录下即可。个人比较喜欢molokai主题风格,下面就简单介绍如何下载这个主题吧。
1)在gitHub上搜索 molokai 主题,找到主题的git仓库 tomasr/molokai
2)进入到 .vim目录下,使用git clone 下载主题
librant@ubuntu:~/.vim$ git clone https://github.com/tomasr/molokai.git
3)下载完成之后,拷贝 molokai/colors/molokai.vim 文件到 ~/.vim/colors 目录下
4)配置 .vimrc 文件,在文件中红添加如下信息:
set t_Co=256
colorscheme molokai
let g:molokai_original = 1
let g:rehash256 = 1
需要配置其他的主题,只需要设置相应的主题名称。
1.4 其他插件安装
1.4.1 SirVer/ultisnips
UltiSnips是Vim的代码片段工具,它只是一个引擎,它需要和vim-snippets搭配使用。vim-snippets预定义了几十种语言常用的代码模板,位于 ~/.vim/bundle/vim-snippets/UltiSnips/,UltiSnips 有一套自己的代码模板语法规则。
在 .vimrc中的配置如下:
Plugin 'honza/vim-snippets'
Plugin 'SirVer/ultisnips'
"插入模式下直接通过
let g:UltiSnipsExpandTrigger="
"弹出UltiSnips的可用列表,由于不常用, 所以这里设置成了特殊的
let g:UltiSnipsListSnippets="
"
let g:UltiSnipsJumpForwardTrigger="
"
let g:UltiSnipsJumpBackwardTrigger="
增加位置如Go-vim的位置一致,安装过程也是类似的。
gitHub的代码路径如下所示:
honza/vim-snippets: https://github.com/honza/vim-snippets.git
SirVer/ultisnips: https://github.com/SirVer/ultisnips.git
1.4.2 scrooloose/nerdtree
NERDTree的作用就是列出当前路径的目录树,一般IDE都是有的。可以方便的浏览项目的总体的目录结构和创建删除重命名文件或文件名。
在 .vimrc中的配置如下:
Plugin 'scrooloose/nerdtree'
" 设置NerdTree
map
map
进入到 vim 后可以按 F7 显示和隐藏 NERDTree区域。
gitHub的代码路径如下所示:
scrooloose/nerdtree: https://github.com/scrooloose/nerdtree.git
1.4.3 majutsushi/tagbar
tagbar可以将正在编辑的文件生成一个大纲视图,包含接口/方法/变量等, 可以选中快速跳转到目标位置, 编辑大文件特别有用。
由于tagbar是基于ctags,需要先安装ctags:
root@ubuntu:/# apt-get install ctags
在 .vimrc中的配置如下:
"F9触发,设置宽度为30
let g:tagbar_width = 30
nmap
"开启自动预览(随着光标在标签上的移动,顶部会出现一个实时的预览窗口)
let g:tagbar_autopreview = 1
"关闭排序,即按标签本身在文件中的位置排序
let g:tagbar_sort = 0
进入到 vim 后可以按 F9 开启和关闭tagbar功能 。
gitHub的代码路径如下所示:
majutsushi/tagbar: https://github.com/majutsushi/tagbar.git
1.4.4 Raimondi/delimitMate
delimitMate是自动补全引号(单引号/双引号/反引号), 括号(()[]{})的插件。
在 .vimrc中的配置如下:
Plugin 'Raimondi/delimitMate'
gitHub的代码路径如下所示:
Raimondi/delimitMate: https://github.com/Raimondi/delimitMate.git
GO语言调试利器——dlv
vim创建程序文件自动添加头部注释
附录:VIM参数设置解析
set nocompatible:不要使用vi的键盘模式,而是vim自己的
set number:显示行号
set showcmd:输入的命令显示出来
syntax on:开启语法高亮
filetype on:检测文件类型
海量技术实践经验,尽在云加社区! https://cloud.tencent.com/developer
Vim-Go环境搭建的更多相关文章
- 我的vim开发环境搭建:C/C++/Go,持续更新中
懒得在github博客上折腾评论功能,先借用博客园推广下,虽然好像也没什么用. 我的vim开发环境搭建(1): 准备工作 我的vim开发环境搭建(2): 常用的vim插件 我的vim开发环境搭建(3) ...
- Golang开发环境搭建-Vim篇
一.一个干净的环境 找个干净的基础环境,方便确认每个搭建步骤后的效果: Ubuntu 14.04 x86_64 vim version 7.4.52 go version go1.4beta1 lin ...
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- 1-web应用之LAMP源码环境搭建
目录 一.LAMP环境的介绍 1.LAMP环境的重要性 2.LAMP组件介绍 二.Apache源码安装 1.下载Apache以及相关依赖包 2.安装Apache以及相关 ...
- 【java开发】ubuntu常用命令及环境搭建
学习第一天,今天内容相对简单,主要就是ubuntu一些常用命令及常规操作,后续涉及到环境的搭建,也会在本文再更. ubuntu环境搭建 第一种 也是最简单最方便的 通过vm虚拟机软件,下载iso镜像进 ...
- 攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)
一.环境说明: 操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 ...
- node.js之开发环境搭建
一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...
- Hadoop学习笔记—14.ZooKeeper环境搭建
从字面上来看,ZooKeeper表示动物园管理员,这是一个十分奇妙的名字,我们又想起了Hadoop生态系统中,许多项目的Logo都采用了动物,比如Hadoop采用了大象的形象,所以我们可以猜测ZooK ...
- Mac OS X上IntelliJ IDEA 13与Tomcat 8的Java Web开发环境搭建
这标题实在有点拗口,不知道怎么写好,但看了标题也就明白文本的内容.最近几天在折腾这些玩意儿,所以写写总结.除了环境搭建,本文还是一篇入门级的上手教程. 去下载一些东西 JDK安装 Tomcat安装 T ...
- PHP开发环境搭建
链接: Q&A1.Mac下的PHP环境搭建 Mac 下如何搭建 PHP 开发环境? [PHP] Mac下homebrew安装及php.mysql.nginx环境安装及配置个人PHP开发环境的选 ...
随机推荐
- java自带的MD5
前言: MD5可生成16.32.64位数的签名. // MD5加码,32位 public static String toMD5(String plainText) { String r ...
- Python+Opencv进行识别相似图片
http://blog.csdn.net/feimengjuan/article/details/51279629
- 备注Quartz触发器设置
corn表达式时间格式: <!-- s m h d m w(?) y(?) -->, 分别对应: 秒>分>小时>日>月>周>年, ●星号(*):可用在所 ...
- 设计模式--命令模式C++实现
命令模式C++实现 1定义 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求队列或者记录请求日志,可以提供命令的撤销和恢复功能 2类图 角色描述: Receiver接受者角色,就 ...
- umilit 修改 linux 最多可打开文件数
ulimit -n 修改 临时修改: ulimit -SHn 65535 永久修改: echo '* - nofile 65535' >> /etc/security/li ...
- ubuntu14.04 改变系统默认Python解释器
今天刚安装了anaconda,摸索了一阵子,现做个相关记录. 虽然安装的时候,会通知你是否加入环境变量(加到.bashrc尾部),但是调用的解释器仍然是系统自带默认的Python2.7.6,我们在/r ...
- ASP.NET经典权限解决方案,适用于OA、CRM、ERP、HR等应用系统
经典权限解决方案 1.权限简介 一般的管理系统都需要对用户的操作进行一定的限制,有的用户可以有许多操作,有的则有少量的操作.这样就需要一个授权机制,基于角色的授权机制描述了某个角色拥有一定数量的操作授 ...
- LeetCode OJ:Add and Search Word - Data structure design(增加以及搜索单词)
Design a data structure that supports the following two operations: void addWord(word) bool search(w ...
- 构建Uber端到端技术栈的十条经验(转载)
好文章就得分享: 一.SOA 系统设计包括若干个层面.先说顶层的系统设计原则,如 REST.SOA.由于 Uber 之前一直算一个创业公司,所以开发速度至关重要,由于微服务能够极大地促进不同组件的平行 ...
- c# DataTable行转列
/// <summary> /// datatable行转列 /// </summary> /// <param name="dtSrc">来源 ...