Fly Vim, First-Class
Engineers at Square use a wide variety of code editors: Sublime, IntelliJ,
Xcode, and Vim are among the most popular. Over time, the Square Vim
enthusiasts have compiled settings, shortcuts, and plugins into a single repo
we lovingly call Maximum Awesome, which we are open-sourcing
today! We want anyone running OS X to be able to get up and running with Vim in
We pair program often (but not always) at Square. It's a great way to tackle
complex problems, onboard new teammates, and try out new ideas. By using the
same base config files, there's no need to relearn shortcuts when using someone
else's computer — it's all standardized! This reduces a lot of friction
and allows us to focus on the code.
Maximum Awesome comes with many of the features you expect from a full IDE:
syntax highlighting, code completion, error highlighting, etc. But it doesn't
stop there! To get things started, here are just a few of my favorite plugins
- Shared Clipboard: The Vim register and OS X clipboard are kept in sync, so I can move code around just like any native application.
- Command-T Plugin: For those who use Sublime or TextMate, this superpower
will already be familiar. While in Vim, use the shortcut
,tand type just a few letters to open the file you want.
- NERDTree Plugin: Browse a project's file structure, move files, or
create new ones, all without ever leaving the comfort of Vim. Use
,dto toggle the drawer, or use
,fto open NERDTree to the current file.
- Git Integration: The fugitive plugin has most git commands covered, but
the Vim-specific ones I love are
:Gdiff. I can easily understand who wrote different parts of a file with
:Gblameor get a side-by-side comparison of what I've just written using
- Quickly Comment Code: Use
\\\to quickly comment out a line or
\\on a visual selection.
There are also some components included beyond Vim. Maximum Awesome comes with
iTerm 2, a replacement for Terminal, a tmux config, and the
Solarized color scheme. This just scratches the surface, though.
Hop over to the README for a more exhaustive list.
On your Mac, Maximum Awesome will set everything up automatically for you. Just
run the command below in your terminal:
git clone https://github.com/square/maximum-awesome.git && cd maximum-awesome && rake
Symlinks are created in your home directory that point to the repo
so updating is as easy as
git pull && rake. If you already had Vim or tmux
config files, they've been backed up. For example, your old
.vim directory is
.vim.bak. Keep reading about "Customizing" if you want to incorporate
your existing settings.
Having problems installing? Open an issue on GitHub and we'll take a
look right away.
In your home directory, Maximum Awesome creates a
.vimrc.local file where you
can customize Vim to your heart's content. However, we'd love to incorporate
your changes and improve Vim for everyone, so feel free to fork Maximum Awesome
and open some pull requests!