/govim

govim is a Go development plugin for Vim8, written in Go

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

govim - Go development plugin for Vim8

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.

What can govim do?

See the govim plugin API which also has links to some demo screencasts.

FAQ

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.

Contributing

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.