1. vim-go 安装
折腾过vimrc的人大都会有自己熟悉的vim配置,这里不再从头开始配置vim了,推荐一个github上的vimrc配置amix/vimrc. 这个配置文件包含了很多常用的vim插件,给用户充足的定制空间,最重要的是它本身就包含了vim-go
另外还可以使用pathogen自行安装: git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-go
确保vim-go下的autoload能被正确加载。
然后在vim的命令模式下执行 :GoInstallBinaries 这样就会安装vim-go的相关依赖。如果遇见有些package无法下载的话,基本上是因为golang.org被墙了。可以先创建 $GOPATH/src/golang.org/x/然后cd到该文件夹,clone对应的代码库,如:git clone https://github.com/golang/net 然后执行go install net来安装相关package
常用的package有:
- net
- tools (安装的时候是go install tools/cmd)
- lint
- sys
gocode godef gotags
gocode
gocode是一款go的自动补全工具,目前支持vim、neovim、emacs
前面的操作顺利的话按
godef
godef可以用来查找函数的定义,将光标移动相关函数上,
在命令模式下输入:GoDef或则在普通模式下输入gd即可跳转到函数定义出。Ctrl+t返回原文件
gotags
类似于ctags,生成函数标签索引,用户查找函数的声明或者调用。1
gotags -R .
执行以上命令会生成tags文件,可通过 Ctrl+]、Ctrl+t实现函数跳转
另外结合tagbar查看文件函数结构
也可以设置nmap实现tagbar迅速切换1
nmap <F8> :TagbarToggle<CR>
常用命令
Cmd | Desc | Note |
---|---|---|
GoRun | 运行当前文件 | |
GoBuild | 编译当前文件 | GoBuild 不会生成二进制文件 |
cnext(cprevious) | 编译时出现问题时,通过这两个命令来查看错误位置 | |
GoTest | 运行测试代码 | GoTest 10s还没执行完就会超时 |
GoTestFunc | 运行光标处的测试函数 | |
GoCoverage | 高亮显示代码执行覆盖率 | GoCoverageClear清除高亮 GoCoverageToggle Toggle高亮 |
GoFmt | 格式化go代码 | |
GoImport | 引入指定的go package | ex. :GoImport strings tab键可以自动补齐 |
GoImportAs | 引入指定的go package 并设置别名 | ex. :GoImportAs str strings tab键可以自动补齐 |
GoDrop | 删除指定的go package | ex. :GoDrop strings tab键可以自动补齐 |
if,af | normal mode函数范围的操作 如dif(delete inner function)是删除函数体(不包含声明) vaf(visual all function)选中函数体(包含声明和注释) | |
GoDef | 跳到光标处函数的声明位置 | 使用ctrl+]或者gd也可跳转,ctrl+t跳回来 |
参考链接
vim-go-tutorial
Go Development with Vim-go
vim安装go插件vim-go和gocode,支持代码高亮、代码提示和语法检查等功能
IDEs and Plugins for Go