Vimshell
The vimshell extension is a handy customization that allows you to run a shell subprocess in a vim window. This is great for when you're editing a file or debugging a program and don't want to have two terminal windows open or pop in and out of vim to run things. The source and instructions can be found here and precompiled binaries and instructions are below.
One unfortunate thing about the extension is it requires you to compile vim from source after applying a patch, so you need different executables for different architectures. Below are three precompiled versions of vim with vimshell included:
Put all three of these executables into your ~/bin directory and add the following code to your .bashrc file to run the right version on the right machine:
case "`uname -sp`" in
"Linux x86_64")
export VIM=/usr/share/vim
export VIMRUNTIME=/usr/share/vim/vim70
alias vim='~/bin/vim_linux64';;
"Linux i686")
export VIM=/usr/share/vim
export VIMRUNTIME=/usr/share/vim/vim70
alias vim='~/bin/vim_linux32';;
"Darwin i386")
export VIM=/usr/share/vim
export VIMRUNTIME=/usr/share/vim/vim62
alias vim='~/bin/vim_darwin';;
esac