• Edit text at the speed of light • Precise like a surgeon • 100% keyboard driven • It’s on every platform • Highly configurable • Very extensible via plugins • Great documentation • It’s free • Worthwhile long-term investment (since 1991/1976)
“You are a surgeon performing emergency surgery.” “That’s how I feel when I am using Vim” “With very precise moves and using the right tools you quickly slice, extract, and inject new code.” “Laying on the bed is the patient, your code. “
• Maximize what you can do with as few keystrokes as possible • It’s all about editing text efficiently • VIM Modes By using different modes you avoid the need to use weird combinations
• i -> insert mode, ESC back to normal mode • x -> delete character • dd -> delete current line (and copy) • p -> paste • y -> copy character (yank) • yy -> copy current line • hjkl -> mode around (←↓↑→) • :help • :w -> save, :q -> quit, :wq -> save and quit
1. Learn more commands! 2. Combine operators, counts and motions 3. Commands in caps are big versions of commands in lower case 4. The .(dot) command repeats the last change 5. The search and find commands 6. The visual mode 7. Code completion 8. Macros
• a -> instead after character (append) • w -> go to the beginning of next word (word) • b -> go to the beginning of last work (back) • e -> go to the end of next word (end) • u -> undo last change (undo) • cw -> change word • o -> insert new line after the current one • gg -> go to the beginning of the document • $ -> go to the end of the line, 0 -> go to the beginning of the line
• c2w -> change two words • d$ -> delete until the end of the line • daw -> delete all word (word and whitespace around it) • d2p -> delete two paragraphs • dt) -> delete until the parenthesis (not incluse) • di” -> delete inside quotes • da” -> delete inside quotes and quotes • % -> go to matching bracket • d2/hello -> delete until second occurrence of hello
• I -> insert at the beginning of the line • A -> append at the end of the line • D -> delete until the end of the line (shortcut for d$) • C -> change until the end of the line • O -> new line before the current line • G -> go to the end of the file • J -> append previous line
• Vim is design to tackle repetition • Use the . command to repeat the last change • Use . to repeat the last command • Learn which combos are more repeatable
• / to seach for patterns (e.g. /hello) • n for next occurrence • N for previous occurrence • * runs search for word under cursor • f find next occurrence of character in current line • ; next character in same line • , previous character in same line • F find but in reverse • t, like f but sets the cursor before the character
• The visual mode lets you select text and perform operations on that selection • v -> go into visual mode with character selection • V -> go into visual mode with line selection • -> go into visual mode with block selection • Useful for instance for: • J -> join all lines together • < > -> add indentation • = -> autoindent
• You can record useful chains of commands for later use • Use q to start recording a macro • Type register where to store macro • Record macro • Save macro with q • If they are really useful you can save them permanently
Vim is a fast and efficient text editor that will make you a faster and more efficient developer. It’s available on almost every OS—if you master the techniques in this book, you’ll never need another text editor. In more than 100 Vim tips, you’ll quickly learn the editor’s core functionality and tackle your trickiest editing and writing tasks. It’s Maciej Certified!
Learn Vim Progressively http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/ http://pluralsight.com/training/Courses/TableOfContents/smash-into-vim Smash into Vim Vim Adventures http://vim-adventures.com/