This Keymando plugin adds a Vim-like editing mode everywhere (with a few apps excluded). To try it out, open TextEdit and play with it.
It's still pretty rough at the moment -- most edge cases aren't handled properly. Pasting in particular is not properly working yet.
Grab it with Mercurial or Git:
hg clone http://bitbucket.org/sjl/keymando-vim "~/Library/Application Support/Keymando/Plugins/vim" git clone http://github.org/sjl/keymando-vim.git "~/Library/Application Support/Keymando/Plugins/vim"
Reload your Keymando config. You're now in normal mode.
Keymando-vim has several modes, each with their own bindings (just like Vim).
Note: until keymando-vim hits 1.0.0 everything is subject to change in lots of backwards-incompatible ways. Use it at your own risk.
<M-Esc> - Toggle keymando-vim off and on. Requires `growlnotify` for alerts.
<Esc> - Switch to normal mode. <C-[> - Switch to normal mode.
h/j/k/l - Left/down/up/right. w - Move one word forward. b - Move one word back. e - Move to the next "end of word". 0 - Move to the beginning of the line. i - Enter insert mode here. a - Enter insert mode after the character to the right of the cursor. A - Move to the end of the line and enter insert mode. I - Move to the beginning of the line and enter insert mode. o - Add a new line below this one and enter insert mode in it. O - Add a new line above this one and enter insert mode in it. d<text object> - Delete the given text object. c<text object> - Delete the given text object. dd - Delete the current line. cc - Remove all text on the current line and enter insert mode in it. p - Paste the cut line after the current one. P - Paste the cut line before the current one. u - Undo. <C-r> - Redo. x - Delete the character to the right of the cursor. s - Delete the character to the right of the cursor and enter insert mode.
w - From the cursor to next "word beginning". b - From the cursor backwards to the previous "word beginning".