Wait, you're not done! Do this:

Remap caps-lock to escape with PCKeyboardHack - The escape key is the single most used key in vim. Old keyboards used to have Escape where Tab is today. Apple keyboards are the worst with their tiny Esc keys. But all this is fixed by remapping Caps to Escape. If you're hitting a small target in the corner, you are slowing yourself down considerably, and probably damaging your hands with repetitive strain injuries.

Remap your Alfred or Spotlight to Ctrl-Cmd-Space, so that you can use Cmd-Space to autocomplete in vim. This is much more friendly for your fingers than Ctrl-n.

Set up a system wide hotkey for iTerm (Keys=>Hotkey). Recommended Cmd-Escape, which is really Cmd-Capslock.

In iTerm, uncheck "Use Lion-style full screen" on General; in MacVim, uncheck Prefer native fullscreen under Advanced settings. This will give you fast full screen windows that are switchable without switching to spaces.

If you want to run vim in terminal

Make sure you install Solarized colorscheme in your terminal!

If you don't want to use solarized terminal, then make sure you do this:

let g:yadr_using_unsolarized_terminal = 1
# in ~/.vimrc.before

If you want to use an alternate colorcheme like Gruvbox, then in your ~/.vimrc.after do:

let g:yadr_disable_solarized_enhancements = 1

Upgrading

Upgrading is easy.

cd~/.yadr
git pull --rebase
rake update

What's included, and how to customize?

Homebrew is the missing package manager for OSX. Installed automatically.

We automatically install a few useful packages including ctags, git, macvim, hub, and the silver searcher ('ag')
Note that our autocomplete plugin requires a MacVim that supports Lua. The installer knows how to install it, but if you had one installed before, you may need to manually remove your old MacVim.

ZSH

Think of Zsh as a more awesome bash without having to learn anything new.
Automatic spell correction for your commands, syntax highlighting, and more.
We've also provided lots of enhancements:

Vim mode and bash style Ctrl-R for reverse history finder

Ctrl-x,Ctrl-l to insert output of last command

Fuzzy matching - if you mistype a directory name, tab completion will fix it

Aliases

Lots of things we do every day are done with two or three character
mnemonic aliases. Please feel free to edit them:

ae # alias edit
ar # alias reload

Git Customizations:

YADR will take over your ~/.gitconfig, so if you want to store your usernames, please put them into ~/.gitconfig.user

It is recommended to use this file to set your user info. Alternately, you can set the appropriate environment variables in your ~/.secrets.

git l or gl- a much more usable git log

git b or gb- a list of branches with summary of last commit

git r - a list of remotes with info

git t or gt- a list of tags with info

git nb or gnb- a (n)ew (b)ranch - like checkout -b

git cp or gcp- cherry-pick -x (showing what was cherrypicked)

git simple - a clean format for creating changelogs

git recent-branches - if you forgot what you've been working on

git unstage / guns (remove from index) and git uncommit / gunc (revert to the time prior to the last commit - dangerous if already pushed) aliases

Some sensible default configs, such as improving merge messages, push only pushes the current branch, removing status hints, and using mnemonic prefixes in diff: (i)ndex, (w)ork tree, (c)ommit and (o)bject

Slightly improved colors for diff

RubyGems

A .gemrc is included. Never again type gem install whatever --no-ri --no-rdoc. --no-ri --no-rdoc is done by default.

Tmux configuration

tmux.conf provides some sane defaults for tmux on Mac OS like a powerful status bar and vim keybindings.
You can customize the configuration in ~/.tmux.conf.user.

Vimization of everything

The provided inputrc and editrc will turn your various command line tools like mysql and irb into vim prompts. There's
also an included Ctrl-R reverse history search feature in editrc, very useful in irb, postgres command line, and etc.

A list of some of the most useful commands that YADR provides in vim are
included below. This is not a comprehensive list. To get deeper knowledge,
practice a few of these every day, and then start looking into the lists
of plugins above to learn more.

Navigation

,z - go to previous buffer (:bp)

,x - go to next buffer (:bn)

Cmd-j and Cmd-k to move up and down roughly by functions

Ctrl-o - Old cursor position - this is a standard mapping but very useful, so included here

,yw - yank a word from anywhere within the word (so you don't have to go to the beginning of it)

,ow - overwrite a word with whatever is in your yank buffer - you can be anywhere on the word. saves having to visually select it

,ocf - open changed files (stolen from @garybernhardt). open all files with git changes in splits

,w - strip trailing whitespaces

sj - split a line such as a hash {:foo => {:bar => :baz}} into a multiline hash (j = down)

sk - unsplit a link (k = up)

,he - Html Escape

,hu - Html Unescape

,hp - Html Preview (open in Safari)

Cmd-Shift-A - align things (type a character/expression to align by, works in visual mode or by itself)

:ColorToggle - turn on #abc123 color highlighting (useful for css)

:Gitv - Git log browsers

,hi - show current Highlight group. if you don't like the color of something, use this, then use hi! link [groupname] [anothergroupname] in your vimrc.after to remap the color. You can see available colors using :hi

,gt - Go Tidy - tidy up your html code (works on a visual selection)

:Wrap - wrap long lines (e.g. when editing markdown files).

Cmd-/ - toggle comments (usually gcc from tComment)

gcp (comment a paragraph)

Rails & Ruby

,vv and ,cc to switch between view and controller - these are maps to :Rcontroller and :Rview. Explore the :R family of commands for more fun from rails.vim!

,rs and ,rl to run rspec or a spec line in iTerm (check iTerm window for results)

,ss and ,sl for the same using spring rspec which makes your Rails specs faster by caching the Rails env (must have spring gem installed)