fatih /vim-go

Go development plugin for Vim

★ 16,215⑂ 1,423
Vim ScriptCreated 2014-03-24www.patreon.com/bhcleek
16,215
stars
+-2+-1+-5
1,423
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

vim-go 




  


 Features

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 and many other features support via gopls.
 formatting 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.
 Lint your code with :GoLint or :GoMetaLinter, run your code through :GoVet to catch static errors, or make sure errors are checked with :GoErrCheck.
 Advanced source analysis utilizing gopls, such as :GoImplements, :GoCallees, and :GoReferrers.
 ... and many more! Please see doc/vim-go.txt for more information.
 Integration with gopls.
 The gopls instance can be shared with other Vim plugins.
 Vim-go's use of gopls can be disabled and alternative tools can be used when desired.
 Integration with Tagbar via gotags.
 Integration with Ultisnips and other snippet engines.

 Install

vim-go requires at least Vim 8.2.5072 or Neovim 0.4.0.

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 https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
 Neovim packages
   git clone https://github.com/fatih/vim-go.git ~/.local/share/nvim/site/pack/plugins/start/vim-go
 Pathogen
   git clone https://github.com/fatih/vim-go.git ~/.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 install all the required binaries.

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

 Usage

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 a tutorial in the official vim-go wiki.

 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 n

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON