Skip to content

Radu's vim setup

RaduBerinde edited this page Feb 4, 2016 · 15 revisions

A quick and dirty for how to get started with vim and go.

1. Install pathogen

mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

And add to the top of ~/.vimrc:

execute pathogen#infect()
syntax on
filetype plugin indent on

2. Install vim-go

git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-go

Add these to ~/.vimrc:

let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_build_constraints = 1
autocmd FileType go set number fo+=croq tw=100
autocmd Filetype go set makeprg=go\ build\ .
autocmd Filetype go nmap <C-]> :exec("GoDef")<CR>
autocmd Filetype go nmap <F9> :GoReferrers<CR>
autocmd Filetype go nmap <C-\> <Plug>(go-def-split)
autocmd Filetype go nmap <Space> <Plug>(go-info)

Make sure $GOPATH is set correctly, start vim and run

:GoInstallBinaries

Optional: set up ag

Install ag (a faster, better grep) on your system. On Debian:

apt-get install silversearcher-ag

Then install the vim plugin

cd ~/.vim/bundle && git clone https://github.com/rking/ag.vim

You can use commands like :Ag in vim now. Here are some useful mappings that you can put in ~/.vimrc:

nmap <F7> :let @/ = "<C-R><C-W>"<CR>:Ag -s -w <C-R><C-W> *<CR>
nmap <F8> :let @/ = "<C-R><C-W>"<CR>:!ag -s -w <C-R><C-W> *<CR>

These search the identifier under the cursor, and also put that identifier in the search register so you can keep searching in files with n.