Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Shared Atomic Object vim configuration
branch: master
Failed to load latest commit information.
after Highlight strings in cucumber steps
autoload Upgrade align.vim
bundle Merge branch 'master' of gitorious.atomicobject.com:vim-settings/colt…
colors Updates for Sartin and Skeletor files
compiler update ruby plugin
doc Upgrade align.vim
ftdetect moved feature and merb to optional and brought in tpope's cucumber pl…
ftplugin oops oops
indent moved feature and merb to optional and brought in tpope's cucumber pl…
plugin Upgrade align.vim
snippets my stuff
spell
syntax moved feature and merb to optional and brought in tpope's cucumber pl…
tools
.gitignore ctrlp
.gitmodules Add vim-gnupg plugin as submodule.
README.textile duplicated word in README.textile
Rakefile remove fuzzy finder
alles-gvimrc.vim Croz vim settings for gvim, currently biased towards windows
alles-vimrc.vim new colors
anderson-gvimrc.vim not-fullscreen by default for anderson-gvim
anderson-vimrc.vim Fix case change to option#include
bacon-vimrc.vim Change colors or parens
colthorp-gvimrc.vim Add my (drew/bacon-based) vimrc)
colthorp-vimrc.vim move vinegar to optional
common-vimrc.vim disable 'snappy' settings which may be causing blank screen issues
crosby-gvimrc.vim Croz vim settings for gvim, currently biased towards windows
crosby-vimrc.vim croz stuff
english-gvimrc.vim Add my (drew/bacon-based) vimrc)
english-vimrc.vim
filetype.vim Added filetype capture for nginx
johnson-gvimrc.vim Update vim-ruby to fix syntax highlighting breakage.
johnson-vimrc.vim Update vim-ruby to fix syntax highlighting breakage.
macvim-vimrc.vim Customized for php and drupal work.
sartin-vimrc.vim vim tweaks moved here. Tweak for vim 7.4
siva-vimrc.vim Added a keymap for quick search and replace in Visual mode. Added key…
skeletor-vimrc.vim Updates for Sartin and Skeletor files

README.textile

Atomic Vim has a few ideas that (not entirely consistently) direct it’s approach:

  • graceful degradation across vim versions/capabilities
  • easy to set up dependencies (primary features depend only on ruby and ctags)
  • fully functional in a terminal – I don’t want to feel hamstrung over SSH
  • project/directory oriented – like TextMate
  • customizable on a project-by-project basis – particularly files indexed for fuzzy navigation and directories ignored from navigation and search
  • tries not to override existing vim shortcuts (at least, moreso than our previous shared vim config; surround.vim is included and is a notable exception)
  • tries not to add shortcuts for things that can be done just as easily with standard vim shortcuts (,v for vsplit is an exception, but I normally use <C-w>v out of habit)

To use:

Clone into ~/.vim, and add source ~/.vim/common-vimrc.vim to your .vimrc. brew install ctags to get exuberant ctags. I’ve mainly used the config under cygwin on windows, but gvim works pretty well (I’ve never tried setting up ctags and ruby on windows without cygwin).

Project settings

If your working directory contains a .vim file, this is sourced automatically. We mainly use this file to add directories to g:vim_ignore, causing them to be ignored in search and file navigation shortcuts.

Navigation

Uses fuzzyfinder for file completion. Out of the box fuzzyfinder doesn’t offer textmate-style navigation. It does offer a mode to fuzzily match filenames in your tags file however. Since having an up to date tags file has other benefits, we opted to post-process the tags file and add fake entries for files of interest in which ctags didn’t find anything to tag.

,t shows files in your tags file, ,T shows tagged symbols, and ,<C-t> regenerates your tags file and updates the fake entries (requires ctags and ruby).

,e fuzzily finds files and directories in your current directory – a convenient alternative to ,t if you don’t have ctags available. ,l fuzzily finds lines in your buffer, a faster way to navigate within a file than searching. ,, fuzzily finds open buffers.

Any file with an extension in g:taggable_extensions is guaranteed to get a tags file entry, though any file in one of the g:vim_ignore directories will be pruned. This tweak to standard ctags behavior makes all the difference.

Search

Ack.vim is included. ,f searches your working directory, ,F does so ignoring case. The command that’s used is a customized ack command which ignores directories listed in your g:vim_ignore list.

Running files

,r runs the current file. There’s a simple ruby script which dispatches on extension to run the file.

,R runs the current file at the current line. This is basically just used for specs and features.

It’s pretty easy to extend the ruby scripts, but this is an area that can use improvement.

Bclose

,w closes the current buffer without touching your window configuration. ,W does so regardless of modified state.

,q is easier to type than :bd and ,Q easier than :bd!

Gundo

,u shows a graph of your buffer’s history (if you have vim >7.3 and python support)

Clipboard Integration

,c as a prefix causes the next command to use the system clipboard instead of vim’s internal register. ,cp pastes from your clipboard and ,cy yanks to it. This is mainly for terminal use in vim versions prior to 7.3.

Plugins

  • abolish – use :S to replace as you would :s, but it handles case variations for you automatically (and more).
  • fugitive – awesome git support
  • surround – modify things like quotes and parens
  • align – align code easily, such as forcing all equal signs in a series of assignments to be in a column
  • snipmate – TextMate-like snippets.
  • conqueterm – embed a terminal in vim (thanks janus)

Sharable

To make it easy for each of us to customize the configuration and port our config between machines, we’ve each tweaked a few things in files like colthorp-vimrc.vim which we source after common-vimrc.vim.

Something went wrong with that request. Please try again.