-
Couldn't load subscription status.
- Fork 4k
Radu'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\ .Make sure $GOPATH is set correctly, start vim and run
:GoInstallBinaries
You can now use and map things like :GoDef, :GoReferrers etc. My mappings in ~/.vimrc:
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)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 for the identifier under the cursor, and set search register so you can keep searching with n.
You can see my ~/.vimrc here.
My ~/.vim directory is here.