Command (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 feature details. Installation instructions can be found in the main README.

Package provides an API for plugin developers to interface with Vim8 in Go, i.e. write Vim8 plugins in Go rather than VimScript. More details here.

The FAQ covers a number of important questions, including:

  • Why have you created govim? What is/was wrong with vim-go?
  • What versions of Vim and Go are supported with govim?
  • Why should I use govim over vim-go/vim-lsp/…?

I’ve given two talks on govim, the first at London Gophers:

 London Gophers YouTube recording

 London Gophers Slides

The second at Vim London, in which I go into more details on the Vim side, as well as covering how the plugin is tested:

 Vim London YouTube recording

 Vim London Slides

As ever, contributions are very much welcome in the form of feedback, issues and PRs.