As of August 2025, govim is no longer being actively maintained. The repository remains available for anyone who finds it useful, but no new features or bug fixes are planned.
If you are interested in taking over maintenance, please open an issue or reach out via GitHub discussions.
Command github.com/govim/govim/cmd/govim
(referred to simply as govim
) is a Go development plugin for Vim8, much
like vim-go
. But unlike vim-go
, govim
is written in Go, not VimScript. It has
features like code completion, format-on-save, hover details and go-to definition, all of which are driven by
gopls
, the Language Server Protocol (LSP) server for Go. See the
wiki for more details. Installation instructions below.
Package github.com/govim/govim
provides an API for plugin developers to
interface with Vim8 in Go. More details here.
govim
requires at least go1.12
and Vim v8.1.1711
(gvim
is also supported). Neovim is not (currently) supported. More details in the
FAQ.
Install govim
via:
- Vim 8 packages
git clone https://github.com/govim/govim.git ~/.vim/pack/plugins/start/govim
- Pathogen
git clone https://github.com/govim/govim.git ~/.vim/bundle/govim
- vim-plug
Plug 'govim/govim'
- Vundle
Plugin 'govim/govim'
You might need some .vimrc
/.gvimrc
settings to get all features working: see the minimal
.vimrc
or .gvimrc
for a commented explanation
of the required settings. For more details on .vimrc
/.gvimrc
settings as well as some tips and tricks, see
here.
See the govim
plugin API which also has links to some demo
screencasts.
Top of your list of questions is likely "Why have you created govim? What is/was wrong with vim-go
?" For answers
this and more see FAQ.
Contributions are very much welcome in the form of:
- feedback
- issues
- PRs
See govim
tests for details on how the modules in this repository
are tested.