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开发环境的选 ...
随机推荐
- QT 样式表实例
目标:实现button的圆角效果及背景颜色,鼠标滑过颜色变亮,鼠标点击颜色变重. 总体思路首,先根据需要及样式规则新建.qss文件,然后在代码中将文件引用并应用样式. 具体过程如下: 1在项目当前目录 ...
- hdu 4602 Partition 矩阵快速幂
Partition Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Proble ...
- string与位运算
1.String String a="abc"; 会在常量池中开辟一个空间,保存"abc" String b=new String("abc&q ...
- sprites.png雪碧图
长时间不用把精灵图怎么用给忘了... 一.PC端 给所用到精灵图的元素设置background:url(sprites.png路径); background-position: -x -y; 其中: ...
- maven笔记(2)
项目管理利器(Maven)——maven的生命周期和插件Maven的生命周期大概如下:clean compile test package install这几个命令对应了一个项目的完整的构建过程,这几 ...
- Dubbo 和 Spring Cloud微服务架构 比较及相关差异
你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构. 微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务, ...
- 关于mybatis mapper.xml中的if判断
场景: 页面上有搜索框进行调节查询,不同搜索框中的内容可以为空. 过程: 点击搜索,前端把参数传给后台,这是后台要把为空的参数过滤掉. 做法: 通常我们在dao层即mapper.xml中进行过滤判断操 ...
- Spring Boot配置ContextPath【从零开始学Spring Boot】
Spring boot默认是/ ,这样直接通过http://ip:port/就可以访问到index页面,如果要修改为http://ip:port/path/ 访问的话,那么需要在Application ...
- nmcli 使用记录---fatt
安装nmcli工具 yum install NetworkManager 使用语法 Usage: nmcli [OPTIONS] OBJECT { COMMAND | help } OBJECT g[ ...
- iOS安全系列之 HTTPS
作者:Jaminzzhang 如何打造一个安全的App?这是每一个移动开发者必须面对的问题.在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相 ...