/go-ide

Neovim config for golang development

Primary LanguageVim script

go-ide

Neovim Gopher

Description

This project is a lightweight, Neovim integrated development environment (IDE) for Golang development.

Prerequisites

  1. Install golang: https://golang.org/doc/install
  2. Fix paths by adding the following to ~/.bashrc (Ubuntu) or ~/.bash_profile (Mac):
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:/usr/local/go/bin:$PATH

(make sure to run source ~/.bashrc / source ~/.bash_profile or open a new terminal to apply changes)

  1. Install gocode: go get -u github.com/stamblerre/gocode
  2. Install python support for neovim: pip3 install pynvim
  3. Install neovim: https://github.com/neovim/neovim/wiki/Installing-Neovim
  4. Install vim-plug: https://github.com/junegunn/vim-plug#installation
  5. Install nerd-fonts: https://github.com/ryanoasis/nerd-fonts#font-installation

Installation

  1. Make sure you meet the prerequisites above ^
  2. Download the config file:
cd ~/Downloads/; wget https://raw.githubusercontent.com/plentiform/go-ide/master/init.vim

or

cd ~/Downloads/; curl -o init.vim https://raw.githubusercontent.com/plentiform/go-ide/master/init.vim
  1. Make the configuration directory if it doesn't already exist: mkdir -p ~/.config/nvim
  2. Move the downloaded file to the correct location: mv ~/Downloads/init.vim ~/.config/nvim/.
  3. Edit the new configuration file: nvim ~/.config/nvim/init.vim
  4. If the plugins didn't automatically install, press colon : then type PlugInstall and press Enter
  5. Use vim-go to install binaries, press colon : then type GoInstallBinaries and press Enter

Features

  • File browser: nt

  • File search: Ctrl-p

  • Text search: / then type your search terms (find terms Enter, next n, previous N, clear highlight Ctrl-l)

  • Go to definition: gd (traverse back with Ctrl-o)

  • Method and property completion (cycle forward: Tab, cycle backward Shift-Tab, select Enter)

  • Snippets / shortcuts (next input Ctrl-j, previous input Ctrl-k)

  • Debugger

  • Auto imports and tab formatting