Vim搭建Golang开发环境

前言

Vim-go是当前使用最为广泛的用于搭建Golang开发环境的vim插件,这里我同样使用vim-go作为核心和基础进行环境搭建的。vim-go利 用开源Vim插件管理器安装,gmarik/Vundle.vim是目前被推荐次数更多的Vim插件管理器,超过了pathogen。这里我们 就用vundle来作为Vim的插件管理工具。
准备一个编辑Go源码的测试源文件:

//test.go

package main

import "fmt"

func main() {
    fmt.Println("Hello Golang!")
}

安装Vundle.vim

Vundle.vim的安装步骤如下:

mkdir ~/.vim/bundle
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

创建~/.vimrc文件(如果你没有这个文件的话),在文件顶部添加有关Vundle.vim的配置:

set nocompatible              " be iMproved, required
filetype off                  " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
Plugin 'fatih/vim-go'
" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

此时Vim仅安装了Vundle.vim这一个插件。编辑test.go时与编辑普通文本文件无异,一切都还是Vim的默认属性。

安装Vim-go

编辑~/.vimrc,在vundle#beginvundle#end间增加一行:

Plugin 'fatih/vim-go'

在Vim内执行 :PluginInstall

Vundle.vim会在左侧打开一个Vundle Installer Preview子窗口,窗口下方会提示:Processing 'fatih/vim-go',待安装完毕后,提示信息变成Done!

这时,我们可以看到.vim/bundle下多了一个vim-go文件夹:

$ ls .vim/bundle/
vim-go/  Vundle.vim/

此时,再次编辑test.go,语法高亮有了, 保存时自动format(利用$GOBIN/gofmt)也有了,但其他高级功能,比如自动import缺失的 package、自动补齐仍然没有,我们还要继续安装一些东东。

安装go.tools Binaries

vim-go安装说明中提到所有必要的binary需要先安装好,比如gocodegodefgoimports等。
通过:GoInstallBinaries,这些vim-go依赖的二进制工具将会自动被下载,并被安装到$GOBIN下或$GOPATH/bin下。(这个工具需要依赖git或hg,需要提前安装到你的OS中。)

:GoInstallBinaries的执行是交互式的,你需要回车确认:

vim-go: gocode not found. Installing github.com/nsf/gocode to folder /home/tonybai/go/bin
vim-go: goimports not found. Installing code.google.com/p/go.tools/cmd/goimports to folder /home/tonybai/go/bin/
vim-go: godef not found. Installing code.google.com/p/rog-go/exp/cmd/godef to folder /home/tonybai/go/bin/
vim-go: oracle not found. Installing code.google.com/p/go.tools/cmd/oracle to folder /home/tonybai/go/bin/
vim-go: gorename not found. Installing code.google.com/p/go.tools/cmd/gorename to folder /home/tonybai/go/bin/
vim-go: golint not found. Installing github.com/golang/lint/golint to folder /home/tonybai/go/bin/
vim-go: errcheck not found. Installing github.com/kisielk/errcheck to folder /home/tonybai/go/bin/

不过这些代码多在code.google.com上托管,因此由于众所周知的原因,vim-go的自动安装很可能以失败告终,这样就需要你根据上 面日志中提到的各个工具的源码地址逐一去下载并本地安装。无法搭梯子的,可以通过http://gopm.io 下载相关包。

安装后,$GOBIN下的新增Binaries如下:

-rwxr-xr-x  1 tonybai tonybai  5735552 11??  7 11:03 errcheck*
-rwxr-xr-x  1 tonybai tonybai  9951008 11??  7 10:33 gocode*
-rwxr-xr-x  1 tonybai tonybai  5742800 11??  7 11:07 godef*
-rwxr-xr-x  1 tonybai tonybai  4994120 11??  7 11:00 goimports*
-rwxr-xr-x  1 tonybai tonybai  5750152 11??  7 11:03 golint*
-rwxr-xr-x  1 tonybai tonybai  6381832 11??  7 11:01 gorename*
-rwxr-xr-x  1 tonybai tonybai  2954392 11??  7 10:38 gotags*
-rwxr-xr-x  1 tonybai tonybai  9222856 11??  7 11:01 oracle*

安装好这些Binaries后,我们来看看哪些特性被支持了。
再次编辑test.go:

  • 新起一行输入fmt.,然后ctrl+x, ctrl+o,Vim 会弹出补齐提示下拉框,不过并非实时跟随的那种补齐,这个补齐是由gocode提供的。
  • 输入一行代码:time.Sleep(time.Second),执行:GoImports,Vim会自动导入time包。
  • 将光标移到Sleep函数上,执行:GoDef或命令模式下敲入gd,Vim会打开$GOROOT/src/time/sleep.go中 的Sleep函数的定义。执行:b 1返回到hellogolang.go。
  • 执行:GoLint,运行golint在当前Go源文件上。
  • 执行:GoDoc,打开当前光标对应符号的Go文档。
  • 执行:GoVet,在当前目录下运行go vet在当前Go源文件上。
  • 执行:GoRun,编译运行当前main package。
  • 执行:GoBuild,编译当前包,这取决于你的源文件,GoBuild不产生结果文件。
  • 执行:GoInstall,安装当前包。
  • 执行:GoTest,测试你当前路径下地_test.go文件。
  • 执行:GoCoverage,创建一个测试覆盖结果文件,并打开浏览器展示当前包的情况。
  • 执行:GoErrCheck,检查当前包种可能的未捕获的errors。
  • 执行:GoFiles,显示当前包对应的源文件列表。
  • 执行:GoDeps,显示当前包的依赖包列表。
  • 执行:GoImplements,显示当前类型实现的interface列表。
  • 执行:GoRename [to],将当前光标下的符号替换为[to]。

原文链接:Golang开发环境搭建-Vim篇

1. 安装vim 在Linux系统中,vim通常已经预装了。如果没有安装,可以使用以下命令安装: ``` sudo apt-get install vim ``` 2. 配置vimvim中,可以通过配置文件.vimrc来配置vim。可以使用以下命令创建.vimrc文件: ``` vim ~/.vimrc ``` 在.vimrc文件中添加以下内容: ``` syntax on set nu set tabstop=4 set shiftwidth=4 set expandtab set autoindent set cindent ``` 这些配置将会: - 打开语法高亮 - 显示行号 - 设置制表符宽度为4个空格 - 设置缩进宽度为4个空格 - 将制表符转换为空格 - 自动缩进 - 使用C语言缩进 3. 安装插件 vim有很多插件可以增强其功能。以下是一些常用的插件: - YouCompleteMe:自动补全插件 - NERDTree:文件浏览器插件 - Tagbar:显示代码结构的插件 - CtrlP:快速查找文件的插件 可以使用vim插件管理器Vundle来安装插件。首先,需要安装Vundle: ``` git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim ``` 然后,在.vimrc文件中添加以下内容: ``` set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin 'Valloric/YouCompleteMe' Plugin 'scrooloose/nerdtree' Plugin 'majutsu-no-ierukana/tagbar' Plugin 'kien/ctrlp.vim' call vundle#end() ``` 保存并退出.vimrc文件,然后在vim中执行以下命令安装插件: ``` :PluginInstall ``` 安装完成后,可以在.vimrc文件中配置插件。例如,以下是配置YouCompleteMe插件的示例: ``` let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' let g:ycm_autoclose_preview_window_after_completion = 1 let g:ycm_key_invoke_completion = '<C-Space>' ``` 以上配置将会: - 设置YouCompleteMe的配置文件路径 - 自动关闭自动补全窗口 - 设置自动补全快捷键为Ctrl+Space 4. 使用vim进行C语言开发 在vim中,可以使用以下命令打开C语言文件: ``` vim example.c ``` 在C语言文件中,可以使用以下命令编译并运行程序: ``` :!gcc % -o example && ./example ``` 以上命令将会: - 使用gcc编译当前文件 - 将编译后的可执行文件命名为example - 运行example程序 可以使用以下命令保存并退出vim: ``` :wq ``` 以上是在Linux系统中搭建C语言开发环境的步骤。在Windows系统中,可以使用vim for Windows来搭建开发环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值