vim打造golang开发环境

为什么要使用vim来开发golang呢,GoLand它不香吗?香,但是要论快,谁能比vim更快呢?
而天下武功,唯快不破,golang,也仅是武功的一种。
vim对golang的支持很好,通过少量的插件就可以打造golang编辑器

vim8版本

首先我们要使用高vim版本,vim8来一个

ctags

用过vim都知道ctags,要想自动补全,在各种定义和实现之间跳转,都离不开ctags。但ctags不是插件,是单独的软件,要预先安装好:

//查看版本
ctags --version
//查看ctags支持的语言
ctags --list-languages
//查看ctags支持的语言细节
ctags --list-kinds
//查看ctags支持的文件名
ctags --list-maps

ctags5.9默认就支持Go。但早先的版本,比如ctags5.8,就需要手工添加配置才可以,如果你的ctags不支持go,在~/.ctags文件(没有则新建)中添加如下代码:

--langdef=Go
--langmap=Go:.go
--regex-Go=/func([ \t]+\([^)]+\))?[ \t]+([a-zA-Z0-9_]+)/\2/f,func/
--regex-Go=/var[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/v,var/
--regex-Go=/type[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/t,type/

gutentags插件

ctags因为不是插件,使用时要先手工生成tag的信息,才能被vim使用,不太方便。我们安装一下gutentags插件,他是管理ctags的工具,会自动增量更新ctags,再也不用去手工操作ctags了。

vim-go插件

vim-go插件功能太多了,支持go的各种特性,比如文档显示,格式检查,自动导入等,当然,还包括重要的自动补全。

可以通过金光闪闪的传送门,学习vim-go教程

帮助文档:

:help vim-go

一些常见的vim-go功能:

:GoImports:import 检查。
:GoDef:函数定义。
:GoLint:语法检查。
:GoDoc:Go 标准库文档。
:GoVet:执行 go vet。
:GoBuild:编译。
:GoRun:编译运行。
:GoInstall:安装。
:GoTest:测试。
:GoCoverage:测试覆盖率文件。
:GoErrCheck:Errors 检查。
:GoFiles:显示当前包对应的源文件列表。
:GoDeps:显示当前包的依赖包列表。
:GoImplements:显示当前类型实现的 interface 列表。
:GoRename [to]:将当前光标下的符号替换为 [to]。

Tagbar插件

一个典型的golang开发工具,至少要包含以下三个区域:

  • 目录区,显示文件目录
  • 代码区,代码编辑器
  • 结构区,有些地方叫outline,显示函数,类,变量等声明
          目录区  |   代码区  |  结构区 

目录区vim自己就支持,通过Ex, Sex,Vex唤起netrw文件目录窗口。结构区得使用Tagbar插件。

帮助文档:

:help tagbar

Tagbar窗口的一些有用快捷操作:

命令描述
x放大/缩小Tagbar窗口;
s项目排序切换;
+, <kPlus>, zo展开折叠;
-, <kMinus>, zc收起折叠;
o, za折叠收起\展开切换;
*, <kMultiply>, zR展开所有折叠;
=, zM收起所有折叠;
回车转到标签定义处,并且光标跳转到标签定义处;
p转到标签定义处,但光标停留在Tagbar的窗口;
P在预览窗口显示标签;
<C-N>跳到下一个上级标签;
<C-P>跳到上一个上级标签;
<Space>显示标签定义;

自动补全

vim-go自带omnifunc,安装vim-go之后就可以自动补全,检查下自动补全的支持,正常应该是如下输出:

:verbose setlocal omnifunc?
omnifunc=go#complete#Complete
        Last set from ~/.vim/pack/plugins/start/vim-go/ftplugin/go.vim

在需要自动补全的地方,比如“fmt”, 在fmt的点号之后按CTL+x, CTL+o,就会弹出自动补全对话框,CTL+n或者CTL+p在自动补全对话框中选择需要的内容

附:

vim golang全配置



《 “vim打造golang开发环境” 》 有 4 条评论

  1. Let s try and remember that Clomid Cycle Chicks is a group to support women going through similar situations with similar circumstances cytotec prices

  2. cheap cytotec price Similarly, HMG Co A reductase inhibitors, commonly known as statins, also display wide interindividual variability in plasma concentration, response and toxicity due in part to polymorphisms in transporter genes, including SLCO1B1 and ABCG2

  3. can i buy priligy in mexico Clindamycin can be an alternative drug against staphylococci

  4. Additionally, deep vein thrombosis prophylaxis was carried out using compression stockings and an intermittent pneumatic device priligy 30 mg

回复 cytotec misoprostol 200mcg buy 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825