Terminal multiplexer, like screen only better IMO.
This book fast tracked me into it.
Manage tmux sessions
See My config.

http://www.thejach.com/view/2012/07/vims_learning_curve_is_wrong
Don't learn shortcuts or cheat sheets, it's a language
Be in normal mode as much as possible
| Key | Motion |
|---|---|
| ^ | Beginning of line |
| $ | End of line |
| 0 | First column |
i = in, a = all (around)
| Obj | Text object |
|---|---|
| iw | inside word |
| i( | Inside brackets |
| i" | Inside quotes |
| ip | Inside paragraph |
:h text-objects
Travelling Without Moving, Jamiroquai
| Command | Motion |
|---|---|
| f / F | Find char to right/left |
| t / T | Till char to right/left |
| ; | Repeat find/till |
| , | Repeat find/till in opposite direction/till in opposite direction |
| % | Find match |
Motions and verbs can be preceded with count.
| key | Verb |
|---|---|
| d | Delete with motion |
| c | Change. Delete by motion and switch to insert mode |
| y | Yank, aka copy, with motion |
| = | Format/filter |
| Command | Result |
|---|---|
| ci( | Change in () |
| cit | Change inside tag |
| c2t, | Change till 2nd comma |
| Action | Result |
|---|---|
| . | Repeat last change |
| =i{ | Format inside curly brackets (e.g: js, golang} |
| =it | Format inside tag |
| ci( | Change inside () |
| 5dd | Delete 5 lines |
| yat | Copy all tag |
| % | Find match |
| gq<motion> | Format to text width |
| CTRL-A, CTRL-X | Increment/Decrement numbers |
| :set rnu | Relative numbers |
| Action | Completion |
|---|---|
| CTRL-N | Simple completion from open buffers |
| CTRL-X CTRL-F | Filesystem completion |
| CTRL-X CTRL-O | Omni completion |
| Action | Result |
|---|---|
| m<lowercase letter> | Bookmark in current buffer |
| m<uppercase letter> | Bookmark Across buffers |
| `<letter> | Goto bookmarked letter |
| Bookmark | Meaning |
|---|---|
| . | Move to previous edit |
| , | Move to cursor position before jump |
| binding | Action |
|---|---|
| jj | <Esc> |
| , | <Leader> |
| <Leader>v | Load .vimrc |
| <Leader>V | Activate changes to .vimrc |
| <F2> | Close current split (window) |
| <Leader>S | Remove trailing whitespace |
| <CTRL>hjkl | Window movement commands |
| <Leader>d | Delete buffer, keep the split |
| -, + | Resize horizontal splits |
| <ALT>< <ALT>> | Resize vertical splits |
| <F9> | Toggle logical (RTL) editing |
IMO the worst part of VIM, plugins run synchronously
Buffer explorer
I prefer splits over tabs
Git wrapper, simply great
The Fugitive Series at VimCasts
And vim-lawrencium for mercurial
Aasynchronous commands dispatcher
When inside tmux, opens a split, runs in it and captures the output.
Fugitive will use it for :Gpush, :Gpull
:Dispatch ./manage.py compilemessages -l he
:Dispatch gulp test
all about "surroundings": parentheses, brackets, quotes, XML tags, and more.
Easily delete, change and add such surroundings in pairs.
Frontend for the ack command
Custom shortcut: g*
Syntax checking hacks for vim
Fuzzy file, buffer, mru, tag, etc finder
Custom shortcut: gr for CtrlPBufTag
Tree explorer
TextMate's snippets features in Vim
Insert or delete brackets, parens, quotes in pair.
Extended % matching for HTML, LaTeX, and many other languages.
MatchTag, highlight maching tag
Sublime Text style multiple selections for Vim
simplifies the transition between multiline and single-line code
extensible & universal commenting vim plugin that also handles embedded filetypes
gc<motion>
Or visual selection + gc
PyLint, Rope, Pydoc, breakpoints from box.
Trying it for python auto completion, navigation, etc
Also for Django's translations files
| \m Next untranslated string |
| \p Prev untranslated string |
| \c Copy msgid to msgstr |
https://github.com/MeirKriheli/dotvim
Learn, use, fork
Questions ?