linux vim 配置 go 开发环境
- 安装vim-go 插件
vim 暂时对golang 还不支持语法高亮,如果用户希望使用vim 开发golang 程序,还需要给vim 安装对应的插件
首先需要安装一个vim-pathogen vim插件管理工具
mkdir -p ~/.vim/autoload ~/.vim/bundle
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
cd ~/.vim/bundle/
编辑 ~/.vimrc 配置,增加以下内容
execute pathogen#infect()
syntax on
filetype plugin indent on
重启vim 即可安装成功,之后如果想要安装其他插件,只需把插件放到 ~/.vim/bundle 目录下, 重启vim ,vim-pathogen就会帮你自动安装好插件。
安装 vim-go 插件
vim-go 是一款go代码高亮和语法检查的插件,插件安装方式
cd ~/.vim/bundle/
git clone https://github.com/fatih/vim-go.git
然后使用vim 随意打开一个可编译的文件,然后执行安装vim-go 插件,该命令需要“科学上网”,因为要从网上download 对应的可执行文件
:GoInstallBinaries
vim安装网 vim-go 后,用户在vim 编写 .go 后缀的文件时,会对代码进行自动缩紧,由于作者非常不喜欢“自动缩紧”功能,所以坚决要关闭“自动缩紧”功能,关闭的方式,打开 ~/.vim/bundle/vim-go/indent/go.vim 文件,将以下内容注释掉(大约 19 - 21 行)。
但是由于 vim-go 插件会在退出编辑文件时直接格式化**.go 文件,所以注释掉也没有太大用处。
"setlocal autoindent
"setlocal indentexpr=GoIndent(v:lnum)
"setlocal indentkeys+=<:>,0=},0=)
- 安装gocode插件
gocode是一款go的代码提示插件
执行以下命令安装gocode,这样在 ${GOPATH}/bin 目录下就有gocode 的可执行程序了
cd ${GOPATH}/src
go get github.com/nsf/gocode
go install github.com/nsf/gocode
再安装 vim-gocode (https://github.com/Blackrush/vim-gocode)
cd ~/.vim/bundle
git clone https://github.com/Blackrush/vim-gocode.git
这样 vim-gocode 插件就安装好了,用户再使用vim 打开 go 代码文件,通过 Ctrl+x、Ctrl+o 就可以出现函数可选列表。
- 安装 tagbar
用户下载tagbar 后,将其解压到 ~/.vim/bundle 目录下,再此打开vim ,tagbar 就会自动生效 。
为了能够让tagbar 在打开文件时就能够自动生效,用户还需要修改 ~/.vimrc 文件,增加以下内容。
如果之前有使用tarlist 插件的,需要将它的 Tlist_Auto_Open 参数注释掉,免得同时打开。
nmap <Leader>tb :TagbarToggle<CR>
let g:tagbar_ctags_bin='/usr/bin/ctags'
let g:tagbar_width=
autocmd BufReadPost *.go,*.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen()
如果将tagbar 的所有文件都解压到 ~/.vim/bundle 目录,则如果禁用掉 vim-pathogen 插件,则tagbar 就不能够使用了,而且作者发现,如果使用 vim-pathogen 插件,会在编译文件时,莫名的启用换行自动缩进的功能。老实说,作者非常不喜欢 "换行自动缩进的功能" 功能,特别是在复制、粘贴时,会让内容显示得乱七八糟。所以作者推荐在安装 tagbar 插件时,使用最原始的方式,就是用户在下载tagbar 包并且解压后,将里面的 autoload、doc、plugin和syntax 目录下的内容一模一样的拷贝到 ~/.vim/ 目录下。
换言之,就是不使用 vim-pathogen 插件来让 tagbar 插件生效,这样用户就可以在禁用 vim-pathogen 插件后依然能够使用 tagbar 插件。
参考博客:
http://blog.csdn.net/zhang197093/article/details/78559903
http://blog.csdn.net/guestcode/article/details/45249367
tarbar 插件安装参考
http://www.vimer.cn/archives/2066.html , http://blog.csdn.net/dx2880/article/details/7868623
linux vim 配置 go 开发环境的更多相关文章
- Linux下配置PHP开发环境
转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...
- vim配置python开发环境
vim配置python开发环境 一.安装vim sudo apt-get install vim 二.vim基础配置 #Centos6.5 /usr/share/vim/vim72 vi /etc/v ...
- vim配置python开发环境(转)
安装 因为许多Unix衍生系统已经预装了Vim,我们首先要确认编辑器是否成功安装: vim --version 如果已经安装了,你应该看到类似下面的文字: VIM - Vi IMproved 7.3 ...
- Linux下配置Golang开发环境
前几天无意间看到了微信推送的golang开发的消息,看到golang那么牛逼,突然心血来潮想学习一下go.工欲善其事必先利其器,想做go开发,必须先配置好go的开发环境(就像开发Java先安装配置jd ...
- Vim配置IDE开发环境
我的vim IDE界面: 1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get instal ...
- linux下配置LAMP开发环境,以及经常使用小细节
本来安装没什么可说到.可是在linux其中easy会出现各种各样到问题. 我安装以后导致各种问题 比方php无法正常解析,数据库无法关闭,Apache无法开启等等........ 所以搞得我比較郁闷, ...
- Linux 下配置php开发环境
windows下有一键安装的环境很方便,不过现实中常常服务器是linux系统.想要搭建环境怎么搞呢? 边学变发直播博客,不定期更新.
- vim配置php开发环境
1.ctags-用于代码间的跳转 安装 sudo apt-get install ctags 使用 1). 在某个目录下, 建立tags. ctags -R . --执行之后会在当前目录下生成一个ta ...
- vim配置clojure开发环境备忘录
1 需要使用的插件 vundle 使用教程 http://www.cnblogs.com/respawn/archive/2012/08/21/2649483.html vim-fireplace h ...
随机推荐
- jQuery/CSS3实现Android Dock效果
在线演示 本地下载
- 吴恩达机器学习笔记(七) —— K-means算法
主要内容: 一.K-means算法简介 二.算法过程 三.随机初始化 四.二分K-means 四.K的选择 一.K-means算法简介 1.K-means算法是一种无监督学习算法.所谓无监督式学习,就 ...
- make和rest用法
位置(position):下一个要读取或写入的数据的索引.缓冲区的位置不能为负,并且不能大于其限制(limit). 标记(mark)与重置(reset):标记是一个索引,通过Buffer中的mark( ...
- 虚拟化网络之OpenvSwitch
OpenvSwitch简称OVS,官网(http://openvswitch.org/) OVS是一个高质量.多层的虚拟交换软件,即虚拟交换机. OpenvSwitch的见的相关组件: ovs-vsw ...
- UTCformat 转换UTC时间并格式化成本地时间
/** * UTCformat 转换UTC时间并格式化成本地时间 * @param {string} utc */ UTCformat (utc) { var date = new Date(utc) ...
- laravel基础课程---5、路由复习(路由作用)
laravel基础课程---5.路由复习(路由作用) 一.总结 一句话总结: 有利于百度收录,及SEO优化 1.路由书写 (D:\laravel\yzmedu\yzm2\routes\web.php) ...
- 分享知识-快乐自己:Hibernate 中 get() 和 load()、sava、update、savaOrUpdate、merge,不同之处及执行原理?
1):Hibernate 中 get() 和 load() 有什么不同之处? 1)Hibernate的 get方法,会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在缓存中查 ...
- JavaScript里值比较的方法
JavaScript里值比较的方法 参考资料 一张图彻底搞懂JavaScript的==运算 toString()和valueof()方法的区别 Object.is 和 == 与 === 不同 == 运 ...
- Dat.gui 使用教程
官方站点:http://workshop.chromeexperiments.com/examples/gui/ Dat.gui 使用教程:Dat.gui 是一个 GUI 组件,他可以为你的 demo ...
- HihoCoder1333 :平衡树(splay+lazy)(区间加值,区间删除)
描述 小Ho:好麻烦啊~~~~~ 小Hi:小Ho你在干嘛呢? 小Ho:我在干活啊!前几天老师让我帮忙管理一下团队的人员,但是感觉好难啊. 小Hi:说来听听? 小Ho:事情是这样的.我们有一个运动同好会 ...