Setting up vim for Golang programming + beginner cheat sheet
- Install Pathogen, The Vim package manager
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim- Add the following content to ~/.vimrc
- vi ~/.vimrc
execute pathogen#infect()
syntax on
filetype plugin indent on- Install vim-go
$ git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-go Here are some tips/vim-commands that could help you get going
:GoInstallBinaries This installs golint, gofmt and other static tools …
:split <filename> opens up the file in the split window
:hide closes the split window
More multiple window tricks are mentioned here
https://www.cs.oberlin.edu/~kuperman/help/vim/windows.html
5gg go to 5th line
12gg go to 12 line
11yycopy 11 lines from current position
11, 22y copy from 11th to 22nd line
:set number to show line numbers on vim
You can run, build , test the Go package from vim
You need a map leader set in vim. To check the mapleader value run the following command in vim
:echo mapleaderIf it shows undefined then you need to set the mapleader
add the following line to your ~/.vimrc
let mapleader=","and then add the following to the ~/.vimrc
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
au FileType go nmap <leader>c <Plug>(go-coverage)this is to set Mapleader + r will run the go file and Mapleader + b will build the file
in this case the mapleader is comma(,) , so the command comma + r will run the file and comma + t will run the test
d$ deletes from current cursor to the end of the line
Shift + a go to end of the line and switch to insert mode
$Go to the end of the line
5,10d delete from 5th to 10th line
0 go to the beginning of the line
yw Copy the word under cursor
:%s/foo/bar/gc Change each ‘foo’ to ‘bar’, but ask for confirmation first.
