Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upRadu's vim setup
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.vimAnd add to the top of ~/.vimrc:
execute pathogen#infect()
syntax on
filetype plugin indent on2. Install vim-go
git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-goAdd 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
WARNING: Avoid using foldmethod syntax with vim-go: it can make vim very slow when you open a paren or start a string.
Optional: set up tagbar
Install exuberant-ctags on your system, e.g:
sudo apt-get install exuberant-ctagsInstall the vim plugin:
cd ~/.vim/bundle
git clone git://github.com/majutsushi/tagbarAdd this to ~/.vimrc:
let g:tagbar_type_go = {
\ 'ctagstype' : 'go',
\ 'kinds' : [
\ 'p:package',
\ 'i:imports:1',
\ 'c:constants',
\ 'v:variables',
\ 't:types',
\ 'n:interfaces',
\ 'w:fields',
\ 'e:embedded',
\ 'm:methods',
\ 'r:constructor',
\ 'f:functions'
\ ],
\ 'sro' : '.',
\ 'kind2scope' : {
\ 't' : 'ctype',
\ 'n' : 'ntype'
\ },
\ 'scope2kind' : {
\ 'ctype' : 't',
\ 'ntype' : 'n'
\ },
\ 'ctagsbin' : 'gotags',
\ 'ctagsargs' : '-sort -silent'
\ }You can now use or map `:TagbarToggle' in vim.
Optional: set up ag
Install ag (a faster, better grep) on your system. On Debian:
sudo apt-get install silversearcher-agThen 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.
Radu's config
You can see my full config here You can also try copying this file and the entire .vimrc directory instead of the steps above.