endel/.vim
My awesome VIM configuration. Tested only on MacVim.
Usage pattern
On MacVim, use each tab as a isolated project. vim-rooter plugin will take care of you project's root path, and all the others plugins will follow it, such as ctrlp, nerdtree, bufexplorer, etc.
Installing Vim
$ brew install python
$ brew install vim --with-python --with-ruby --with-perl
$ brew install macvim --env-std --override-system-vim
$ pip install powerline-status
For the tagbar plugin:
$ brew install ctags-exuberant
Then install the font found here on your vim
https://github.com/powerline/fonts/blob/master/Inconsolata/Inconsolata%20for%20Powerline.otf
Plugins Setup
First of all, you need to init and update all bundle submodules.
$ git submodule update --init
$ run :GoInstallBinaries inside vim
$ cp $GOPATH/bin/* /usr/local/bin/
Plugins flagged with * needs attention to setup, just follow what README file of the plugin, skiping the vim installation steps. It's recommended to you to read how to use each of the listed plugins below.
- * ack - install ack
- * vim-powerline - removed for now you can install the patched Iconsolata font at
utils
directory. - ctrlp
- ctrlp-filetype
- vim-fugitive
- syntastic
- vim-pathogen
- vim-repeat
- vim-matchit
- nerdtree
- vim-surround
- vim-markdown
- vim-endwise
- delimitMate
- vim-git
- bufexplorer
- UltiSnips
- vim-rooter
- nerdcommenter
- AutoTag
- supertab
- a
- tagbar
- gundo
Utility plugins, required for some plugins.
Custom key mapping
Miscellaneous:
- Y - Yank all characters after current cursor position (y$)
- TT - Generate project tags file
- Leader + , - Hide search highlight (:nohl)
- Leader + ev - Open user ~/.vimrc file (:edit $MYVIMRC)
- Leader + v - Reload VIM configuration (:source $MYVIMRC)
- Shift + Space - Remove trailing whitespaces.
- :Bytes - Get the number of bytes of this buffer. It doesn't need to be saved.
Git / Commiting:
- Leader + s - Open git status interface (:Gstatus)
- gwp - Write commit file and push to current branch (:Gwrite | Git push origin [currentbranch])
Diff:
- dgh - Get diff from left buffer (:diffget //2 | diffupdate)
- dgl - Get diff from right buffer (:diffget //3 | diffupdate)
Buffers:
- Command + Shift + Enter - Expand current buffer (:only)
- Ctrl + n - Go to next buffer (:bnext)
- Ctrl + p - Go to previous buffer (:bprev)
- Leader + Tab - Swap to last edited buffer (:b#)
- Leader + d - Close current buffer (:bd)
- Leader + D - Close current buffer without saving (:bd!)
- Leader + W - Close current buffer and save (:w | bd)
- Leader + n - New buffer (:new)
Plugins:
- Leader + t - Open ctrl-p for files (:CtrlP)
- Leader + T - Open ctrl-p for tags (:CtrlPTag)
- Leader + f - Open ctrl-p for tags (:CtrlPFiletype)
- Leader + b - Open ctrl-p for buffers (:CtrlPBuffer)
- Leader + l - Toggle NERDTree (:NERDTreeToggle)
- Leader + L - Open new NERDTree buffer (:NERDTree)
- Leader + a - Run :Ack [pattern]
- Leader + as - Run :AckFromSearch [pattern]
- Leader + af - Run :AckFile [pattern]
- Leader + B - Open Buffer Explorer (:BufExplorer)
Indentation:
- Command + [ - Indent current line/selection leftwards
- Command + ] - Indent current line/selection rightwards
Colorschemes
Awesome colorscheme flavors
- [tomorrow] (https://github.com/chriskempson/vim-tomorrow-theme)
- [solarized] (https://github.com/altercation/vim-colors-solarized)
- jellybeans
- [vividchalk] (https://github.com/tpope/vim-vividc)
- [github] (https://github.com/endel/vim-github-colorscheme)
Inspiration
Inspired by tpope, airblade and garybernhardt