Skip to content
Go development plugin for Vim
Vim script Go Vim Snippet Shell Python Makefile Dockerfile
Branch: master
Clone or download
bhcleek Merge pull request #2672 from bhcleek/lsp/bdelete
lsp: delete lsp buffer autocmds on BufDelete
Latest commit 025af24 Jan 20, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github issue: include gopls version Dec 20, 2019
assets Remove unused screenshot.png (#1635) Jan 4, 2018
autoload lsp: delete lsp buffer autocmds on BufDelete Jan 19, 2020
compiler adjust default errorformat Sep 10, 2019
doc small documentation typo fix Jan 18, 2020
ftdetect refactor autocmd events Jan 5, 2019
ftplugin define text property types in syntax/go.vim Jan 18, 2020
gosnippets fix typo Dec 31, 2019
indent Restore &cpo even when finishing early Dec 11, 2018
plugin add default value at newlsp for #2637 Dec 29, 2019
rplugin/python3/denite/source Add support for denite.nvim about :GoDecls / :GoDeclsDir (#1604) Dec 10, 2017
scripts lsp: exit gopls after each test Sep 21, 2019
syntax define text property types in syntax/go.vim Jan 18, 2020
templates Use a different template for test files Jun 6, 2017
test don't spam users when Vim is started with Vi compatibility mode Nov 16, 2018
.codecov.yml do not report patch codecoverage Sep 2, 2018
.coveragerc update coverage data file location Jul 22, 2018
.dockerignore test using Go 1.12 Mar 23, 2019
.editorconfig Add scripts/docker-test (#1550) Nov 4, 2017
.gitignore Add support for denite.nvim about :GoDecls / :GoDeclsDir (#1604) Dec 10, 2017
.travis.yml install latest version of covimerage Dec 15, 2019
.vintrc.yaml Add some VimScript lint tools (#1558) Nov 16, 2017 update for #2667 Jan 19, 2020
Dockerfile removing logic needed to support Vim 7.4 as it has been dropped Sep 16, 2019
LICENSE Fix whitespace and typo (#1201) Feb 17, 2017
Makefile removing logic needed to support Vim 7.4 as it has been dropped Sep 16, 2019 update and for #2497 Sep 18, 2019
addon-info.json vim-go: remove misc/vim notes Sep 8, 2014

vim-go Build Status

Vim-go logo


This plugin adds Go language support for Vim, with the following main features:

  • Compile your package with :GoBuild, install it with :GoInstall or test it with :GoTest. Run a single test with :GoTestFunc).
  • Quickly execute your current file(s) with :GoRun.
  • Improved syntax highlighting and folding.
  • Debug programs with integrated delve support with :GoDebugStart.
  • Completion support via gocode and gopls.
  • gofmt or goimports on save keeps the cursor position and undo history.
  • Go to symbol/declaration with :GoDef.
  • Look up documentation with :GoDoc or :GoDocBrowser.
  • Easily import packages via :GoImport, remove them via :GoDrop.
  • Precise type-safe renaming of identifiers with :GoRename.
  • See which code is covered by tests with :GoCoverage.
  • Add or remove tags on struct fields with :GoAddTags and :GoRemoveTags.
  • Call gometalinter with :GoMetaLinter to invoke all possible linters (golint, vet, errcheck, deadcode, etc.) and put the result in the quickfix or location list.
  • Lint your code with :GoLint, run your code through :GoVet to catch static errors, or make sure errors are checked with :GoErrCheck.
  • Advanced source analysis tools utilizing guru, such as :GoImplements, :GoCallees, and :GoReferrers.
  • ... and many more! Please see doc/vim-go.txt for more information.


vim-go requires at least Vim 8.0.1453 or Neovim 0.3.1.

The latest stable release is the recommended version to use. If you choose to use the master branch instead, please do so with caution; it is a development branch.

vim-go follows the standard runtime path structure. Below are some helper lines for popular package managers:

  • Vim 8 packages
    • git clone ~/.vim/pack/plugins/start/vim-go
  • Pathogen
    • git clone ~/.vim/bundle/vim-go
  • vim-plug
    • Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
  • Vundle
    • Plugin 'fatih/vim-go'

You will also need to install all the necessary binaries. vim-go makes it easy to install all of them by providing a command, :GoInstallBinaries, which will go get all the required binaries.

Check out the Install section in the documentation for more detailed instructions (:help go-install).


The full documentation can be found at doc/vim-go.txt. You can display it from within Vim with :help vim-go.

Depending on your installation method, you may have to generate the plugin's help tags manually (e.g. :helptags ALL).

We also have an official vim-go tutorial.

FAQ and troubleshooting

The FAQ and troubleshooting tips are in the documentation and can be quickly accessed using :help go-troubleshooting. If you believe you've found a bug or shortcoming in vim-go that is neither addressed by help nor in existing issues, please open an issue with clear reproduction steps. :GoReportGitHubIssue can be used pre-populate a lot of the information needed when creating a new issue.


The BSD 3-Clause License - see LICENSE for more details

You can’t perform that action at this time.