Skip to content

Commit

Permalink
reformat README to match new Markdown settings
Browse files Browse the repository at this point in the history
  • Loading branch information
wuputah authored and tmm1 committed Aug 16, 2010
1 parent ebf906b commit 3f83d58
Showing 1 changed file with 97 additions and 64 deletions.
161 changes: 97 additions & 64 deletions README.markdown
@@ -1,36 +1,44 @@
# Janus: Carlhuda's vim Distribution

This is a basic distribution of vim plugins and tools intended to be run on top of the latest MacVIM snapshot.
This is a basic distribution of vim plugins and tools intended to be run
on top of the latest MacVIM snapshot.

We (Carl and Yehuda) both use this distribution for our own use, and welcome patches and contributions to help make it
an effective way to get started with vim and then use it productively for years to come.
We (Carl and Yehuda) both use this distribution for our own use, and
welcome patches and contributions to help make it an effective way to
get started with vim and then use it productively for years to come.

At present, we are still learning to use vim ourselves, so you should anticipate a period of rapid development while
we get a handle on the best tools for the job. So far, we have mostly integrated existing plugins and tools, and we
anticipate to continue doing so while also writing our own plugins as appropriate.
At present, we are still learning to use vim ourselves, so you should
anticipate a period of rapid development while we get a handle on the
best tools for the job. So far, we have mostly integrated existing
plugins and tools, and we anticipate to continue doing so while also
writing our own plugins as appropriate.

In general, you can expect that the tools we use work well together and that we have given careful thought to the
experience of using MacVIM with the tools in question. If you run into an issue using it, please report an issue
to the issue tracker.
In general, you can expect that the tools we use work well together and
that we have given careful thought to the experience of using MacVIM
with the tools in question. If you run into an issue using it, please
report an issue to the issue tracker.

## Installation

0. `for i in ~/.vim ~/.vimrc ~/.gvimrc; do [ -e $i ] && mv $i $i.old; done`
0. `for i in ~/.vim ~/.vimrc ~/.gvimrc; do [ -e $i ] && mv $i $i.old;
done`
1. `git clone git://github.com/carlhuda/janus.git ~/.vim`
2. `cd ~/.vim`
3. `rake`

## Updating to the latest version

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

# Intro to VIM

Here's some tips if you've never used VIM before:

## Tutorial

* Type `vimtutor` into a shell to go through a brief interactive tutorial inside VIM.
* Type `vimtutor` into a shell to go through a brief interactive
tutorial inside VIM.

## Modes

Expand All @@ -43,7 +51,8 @@ Here's some tips if you've never used VIM before:
## Useful commands

* Use `:q` to exit vim
* Certain commands are prefixed with a `<Leader>` key, which maps to `\` by default. Use `let mapleader = ","` to change this.
* Certain commands are prefixed with a `<Leader>` key, which maps to `\`
by default. Use `let mapleader = ","` to change this.

# Features

Expand All @@ -58,114 +67,137 @@ Janus ships with a number of basic customizations for vim:
* 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
* 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)
* 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.
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:
**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
* 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 `:e`ing 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
* In general, assume that there is a single NERDTree buffer on the left
and one or more editing buffers on the right

## Ack.vim

Ack.vim uses ack to search inside the current directory for a pattern. You can learn more about it with
:help Ack
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 `.
**Customizations**: Janus rebinds command-shift-f (`<D-F>`) to bring up
`:Ack `.

## Command-T

Command-T provides a mechanism for searching for a file inside the current working directory. It
behaves similarly to command-t in Textmate.
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`.
**Customizations**: Janus rebinds command-t (`<D-t>`) to bring up this
plugin. It defaults to `<Leader>t`.

## ConqueTerm

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.
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.
**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`
**Note**: To get colors working, you might have to `export TERM=xterm`
and use `ls -G` or `gls --color`

## indent\_object

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`.
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.
**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

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'`.
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

NERDCommenter allows you to wrangle your code comments, regardless of filetype. View `help :NERDCommenter`
for all the details.
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.

## SuperTab

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

## ctags

Janus includes the TagList plugin, which binds `:Tlist` to an overview panel that lists all ctags for easy navigation.
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.
**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.
**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).
**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`
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 `: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
Use `:Gdiff` on an open file to see what changes have been made to that
file

## ZoomWin

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

**Customizations**: Janus binds `<Leader>z` to `:ZoomWin`

## Markdown Preview

Markdown preview takes the current buffer, converts the Markdown to HTML, and opens it in your
default browser.
Markdown preview takes the current buffer, converts the Markdown to
HTML, and opens it in your default browser.

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

Expand All @@ -183,7 +215,8 @@ Janus ships with a few additional syntaxes:

## Color schemes

Janus includes the vim color sampler pack, which includes [over 100 popular color themes](http://www.vi-improved.org/color_sampler_pack/):
Janus includes the vim color sampler pack, which includes [over 100
popular color themes](http://www.vi-improved.org/color_sampler_pack/):

* jellybeans
* matrix
Expand All @@ -202,7 +235,7 @@ Janus also has a few customized versions of popular themes:
* molokai
* railscasts+

To set a color scheme, update your local vimrc files:
To permanently set a color scheme, update your local vimrc files:

echo color desert > ~/.vimrc.local
echo color jellybeans+ > ~/.gvimrc.local

0 comments on commit 3f83d58

Please sign in to comment.