Skip to content
A Vim Distro
Ruby VimL Shell
Find file
Pull request Compare This branch is 25 commits ahead, 687 commits behind carlhuda:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Janus: vim Distribution

Janus is a personal fork of Carlhuda's vim Distribution for my daily needs.

Diff to Carlhuda's Janus


    NEW: added jasmine plugin


for i in ~/.vim ~/.vimrc ~/.gvimrc; do [ -e $i ] && mv $i $i.old; done
git clone git:// ~/.vim
cd ~/.vim


curl -o - | sh


Create ~/.vimrc.local and ~/.gvimrc.local for any local customizations.

For example, to override the default color schemes:

echo color desert  > ~/.vimrc.local
echo color molokai > ~/.gvimrc.local

If you want to add additional Vim plugins you can do so by adding a ~/.janus.rake like so:

vim_plugin_task "zencoding", "git://"
vim_plugin_task "minibufexpl", "git://"

If you do not wish to use one of the plugins Janus provides out of the box you can have it skipped using the skip_vim_plugin method in ~/.janus.rake:

skip_vim_plugin "color-sampler"

Note: Skipping the plugin will only apply to installation. It won't remove configurations or mappings Janus might have added for it.

Updating to the latest version

To update to the latest version of the distribution, just run rake again inside your ~/.vim directory.


This vim distribution includes a number of packages built by others.

Base Customizations

Janus ships with a number of basic customizations for vim:

  • Line numbers
  • Ruler (line and column numbers)
  • No wrap (turn off per-buffer via set :wrap)
  • Soft 2-space tabs, and default hard tabs to 2 spaces
  • Show tailing whitespace as .
  • Make searching highlighted, incremental, and case insensitive unless a capital letter is used
  • Always show a status line
  • Allow backspacing over everything (identations, eol, and start characters) in insert mode
  • <Leader>e expands to :e {directory of current file}/ (open in the current buffer)
  • <Leader>tr expands to :te {directory of current file}/ (open in a new MacVIM tab)
  • <C-P> inserts the directory of the current file into a command

"Project Drawer" aka NERDTree

NERDTree is a file explorer plugin that provides "project drawer" functionality to your vim projects. You can learn more about it with :help NERDTree.

Customizations: Janus adds a number of customizations to the core NERDTree:

  • Use <Leader>n to toggle NERDTree
  • Ignore *.rbc and *~ files
  • Automatically activate NERDTree when MacVIM opens and make the original buffer the active one
  • Provide alternative :e, :cd, :rm and :touch abbreviations which also refresh NERDTree when done (when NERDTree is open)
  • When opening vim with vim /path, open the left NERDTree to that directory, set the vim pwd, and clear the right buffer
  • Disallow :eing files into the NERDTree buffer
  • In general, assume that there is a single NERDTree buffer on the left and one or more editing buffers on the right


Ack.vim uses ack to search inside the current directory for a pattern. You can learn more about it with :help Ack

Customizations: Janus rebinds command-shift-f (<D-F>) to bring up :Ack.


Align lets you align statements on their equal signs, make comment boxes, align comments, align declarations, etc.

  • :5,10Align => to align lines 5-10 on =>'s


Command-T provides a mechanism for searching for a file inside the current working directory. It behaves similarly to command-t in Textmate.

Customizations: Janus rebinds command-t (<D-t>) to bring up this plugin. It defaults to <Leader>t.


ConqueTerm embeds a basic terminal inside a vim buffer. The terminal has an insert mode in which you can type commands, tab complete and use the terminal like normal. You can also escape out of insert mode to use other vim commands on the buffer, like yank and paste.

Customizations: Janus binds command-e (<D-e>) to bring up :ConqueTerm bash --login in the current buffer.

Note: To get colors working, you might have to export TERM=xterm and use ls -G or gls --color


Indent object creates a "text object" that is relative to the current ident. Text objects work inside of visual mode, and with c (change), d (delete) and y (yank). For instance, try going into a method in normal mode, and type v ii. Then repeat ii.

Note: indent_object seems a bit busted. It would also be nice if there was a text object for Ruby class and def blocks.


Surround allows you to modify "surroundings" around the current text. For instance, if the cursor was inside "foo bar", you could type cs"' to convert the text to 'foo bar'.

There's a lot more; check it out at :help surround


NERDCommenter allows you to wrangle your code comments, regardless of filetype. View :help NERDCommenter for all the details.

Customizations: Janus binds command-/ (<D-/>) to toggle comments.


In insert mode, start typing something and hit <TAB> to tab-complete based on the current context.


Janus includes the TagList plugin, which binds :Tlist to an overview panel that lists all ctags for easy navigation.

Customizations: Janus binds <Leader>rt to the ctags command to update tags.

Note: For full language support, run brew install ctags to install exuberant-ctags.

Tip: Check out :help ctags for information about VIM's built-in ctag support. Tag navigation creates a stack which can traversed via Ctrl-] (to find the source of a token) and Ctrl-T (to jump back up one level).

Git Support (Fugitive)

Fugitive adds pervasive git support to git directories in vim. For more information, use :help fugitive

Use :Gstatus to view git status and type - on any file to stage or unstage it. Type p on a file to enter git add -p and stage specific hunks in the file.

Use :Gdiff on an open file to see what changes have been made to that file


Nice gist integration by mattn. Requires exporting your GITHUB_TOKEN and GITHUB_USER as environment variables or setup your GitHub token config.

Try :Gist, :Gist -p and visual blocks.


When working with split windows, ZoomWin lets you zoom into a window and out again using Ctrl-W o

Customizations: Janus binds <Leader><Leader> to :ZoomWin


Jasmine plugin by thomd.

Adds syntax highlighting and some snippets.



Vim Jade template engine syntax highlighting and indention.



LessCSS Syntax support in Vim


Hammer takes the current buffer, tries to convert it to HTML, and opens it in your default browser. Hammer is enabled for Markdown files, but has support for much more.

Customizations: Janus binds <Leader>p to this plugin.

Tip: Check out Hammer's README to see the requirements for previewing other file formats.

Additional Syntaxes

Janus ships with a few additional syntaxes:

  • Markdown (bound to *.markdown, *.md, and *.mk)
  • Mustache (bound to *.mustache)
  • Arduino (bound to *.pde)
  • Haml (bound to *.haml)
  • Sass (bound to *.sass)
  • SCSS (bound to *.scss)
  • An improved JavaScript syntax (bound to *.js)
  • Map Gemfile, Rakefile, Vagrantfile and Thorfile to Ruby
  • Git commits (set your EDITOR to mvim -f)

Color schemes

Janus includes the vim color sampler pack, which includes over 100 popular color themes:

  • jellybeans
  • matrix
  • railscasts2
  • tango
  • vibrantink
  • vividchalk
  • wombat
  • xoria256

Use :color vibrantink to switch to a color scheme.

Janus also has a few customized versions of popular themes:

  • jellybeans+
  • molokai
  • railscasts+
  • vwilight
  • wasabi256
Something went wrong with that request. Please try again.