My first and most useful suggestion is this: BUILD YOUR OWN SET OF VIM CONFIGURATION!! I strongly recommend this article to start with a minimum set of configuration options. Than build your editing environment incrementally due to your very personal taste of preferences.
Installation steps for who loves risky stuff.
IMPORTANT NOTE: now my setup heavily uses Unite plugin for various type of listings. Current MacVim does have a problem with garbage collecting causes freezing of vim after selection from any unite buffer. This problem is fixed with regular Vim source code. So i strongly recommend using latest official Vim distribution until MacVim includes the patch about this bug.
IMPORTANT NOTE (2015-03-26): i started to use
neobundle for vim plugin management.
Besides, i am using neocomplete
for auto completion and removed youcompleteme from my stack. I migrated my
package manager from Vundle to NeoBundle with these commands under
vim/vimfiles/bundle
directory; ls | grep -v neobundle.vim | xargs rm -rf
then vim +NeoBundleInstall +qall
command. With neobundle some of the
compilation commands i mentioned below are deprecated because these NeoBundle
can execute them.
- clone the repo.
- execute
git submodule update --init --recursive
- make a symbolic link of REPO_PATH/vim/vimfiles to ~/.vim
- make a symbolic link of REPO_PATH/vim/vimrc to ~/.vimrc
- create a directory for persistent undo history
mkdir ~/.vimtmp
- install necessary external programs. as i remember:
- flake8 for syntax checks.
pip install flake8
used by sytastic plugin. - ctags for tagbar and ctrlp plugin. You can use your OS package manager to
- install ag aka the silver searcher install
- nodejs and npm
- flake8 for syntax checks.
- execute
vim "+NeoBundleInstall vimproc" +qall
- execute
vim +NeoBundleInstall +qall
- if you want to override some configuration options you can create a file
called
~/.vimrc.local
and put your own settings. This file (if exists) will we sourced at the very end of vimrc.
Yeah these should be enough to use my VIM configuration on your system. If these are not sufficient, please warn me.
Note: i am changing some keybindings due to mnemonic approach based on Spacemacs project.
- leader key is
space
F3
key to toggle vim Paste mode<leader>n
for removing highlights (:noh
)<leader>W
to remove trailing whitespace from whole buffer<leader>v
to select just pasted textfd
to<ESC>
<C-s>
toggle NerdTree<leader>T
toggle TagbarF5
key toggle background color<leader>V
activate specified python virtualenv<leader>ff
activate Unite source for files (recursive)<leader>fg
activate Unite git source<leader>b
activate Unite buffer list with quick selection<leader>B
activate Unite buffer list<leader>y
activate Unite buffer outline<leader>fe
activate Unite recent files<leader>h
activate Unite history/yank list<leader>l
activate Unite lines of current file<leader>/
activate Unite grep<leader>H
activate Unite for vim help content<leader>fj
activate Unite for junkfile plugin plugin<leader>G
toggle Gundo plugin<leader>o
executes:only
command. Makes active buffer full screen<leader>fs
bound to:w
command. Saved the buffer<leader><tab>
switch to last edited buffer<C-u>
convert the word uppercase (both NORMAL and INSERT)<leader>s
triggers Dash search based on active buffer's filetype<leader>S
triggers global Dash search<leader>d
tries to go to definition of identifier under cursor. Works with python files out of the box.<C-j>
expand snippet (INSERT)<C-b>
jump next edit point within the snippet (INSERT)<C-z>
jump previous edit point within the snippet (INSERT)<C-n>
to invoke multiple cursors plugin info<leader>qp
runs close commands for preview, help and other windows (:pclose :cclose :helpclose
)<leader>qq
runs command:qa
<leader>gs
executes command:Gstatus
Very basic conf.
- For Mac OS X -->
brew install reattach-to-user-namespace
- For Ubuntu/Linux -->
sudo aptitude install xsel
- Symbolic link tmux/tmux.conf or tmux/tmux.ubuntu.conf to ~/.tmux.conf based on your platform choice.
- Check and modify shell command based preference. Default is fish for now.
Based on oh-my-zsh.
- Install zsh
brew install zsh
orsudo aptitude install zsh
based on your platform. - Install Oh My Zsh!.
- Rename ~/.zshrc to ~/.zshrc_backup
- Symbolic link zsh/zshrc to ~/.zshrc
- Default theme is my own customization to norm theme. If you want to use it, you must make a symbolic link zsh/oh-my-zsh/themes/normz.zsh-theme to ~/.oh-my-zsh/themes directory.
Based on plain old fish
- Install fish shell
brew install fish
orsudo aptitude install fish
based on your platform. pip install virtualfish
- Create a symbolic link fish/config.fish to ~/.config/fish/config.fish
- Create a symbolic link fish/functions/ to ~/.config/fish/functions
- Check and modify your TMUX conf to use fish.