explaingit

fatih/vim-go

Analysis updated 2026-06-24

16,228Vim ScriptAudience · developerComplexity · 2/5LicenseSetup · moderate

TLDR

Vim and Neovim plugin that adds Go language support: build, run, test, debug, completion, jump to definition, and gopls integration.

Mindmap

mindmap
  root((vim-go))
    Inputs
      Go source files
      Vim commands
    Outputs
      Build results
      Test coverage
      Lint reports
    Use Cases
      Edit Go in Vim
      Run tests inline
      Debug with delve
    Tech Stack
      Vim Script
      Go
      gopls
      delve
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Set up a Go IDE inside Vim or Neovim

USE CASE 2

Run and debug Go tests without leaving the editor

USE CASE 3

Refactor and rename Go identifiers safely across a project

USE CASE 4

Auto-format and lint Go code on save

What is it built with?

Vim ScriptGogoplsdelve

How does it compare?

fatih/vim-gomorhetz/gruvboxvim-airline/vim-airline
Stars16,22815,49117,942
LanguageVim ScriptVim ScriptVim Script
Setup difficultymoderateeasyeasy
Complexity2/51/51/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Vim 8.2.5072+ or Neovim 0.4.0+ and running :GoInstallBinaries to fetch external Go tools.

Use freely for any purpose including commercial use, as long as you keep the copyright notice and license text.

In plain English

vim-go is a plugin for the Vim and Neovim text editors that adds full support for developing in Go, a programming language made by Google. Without this plugin, writing Go code in Vim is a basic text editing experience. With it, you get a much richer environment: the editor understands your code and can actively help you write it. The plugin lets you build, run, and test your Go programs directly from within the editor using simple commands. It adds smarter syntax highlighting (color-coding that makes code easier to read), code completion (suggestions that appear as you type), and the ability to jump directly to where a function or variable is defined. You can also look up documentation, automatically add or remove package imports (which are the bundles of external code your program uses), rename variables safely across your whole codebase, and check what percentage of your code is covered by tests. It also includes a debugger, which lets you step through your code line by line to find bugs, and various linters, tools that automatically check your code for common mistakes and style issues. vim-go integrates with gopls, the official Go language server (a background program that provides language-aware features), which it can share with other Vim plugins. It works with both Vim (version 8.2 or later) and Neovim and is installed like any other Vim plugin. It is open-source under the BSD 3-Clause license.

Copy-paste prompts

Prompt 1
Show me a minimal vim-plug config to install vim-go and run GoInstallBinaries
Prompt 2
Configure vim-go to format on save and use gopls for completion in Neovim
Prompt 3
Walk me through using GoDebugStart and delve to debug a failing Go test in vim-go
Prompt 4
Set up vim-go with golangci-lint instead of the default linters
Prompt 5
Map vim-go GoTestFunc and GoCoverage to keyboard shortcuts in my vimrc

Frequently asked questions

What is vim-go?

Vim and Neovim plugin that adds Go language support: build, run, test, debug, completion, jump to definition, and gopls integration.

What language is vim-go written in?

Mainly Vim Script. The stack also includes Vim Script, Go, gopls.

What license does vim-go use?

Use freely for any purpose including commercial use, as long as you keep the copyright notice and license text.

How hard is vim-go to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is vim-go for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub fatih on gitmyhub

Verify against the repo before relying on details.