The Path to Jedi Text Editing With VIM - Padawan Edition

1dfad8107453e0f493ff1a6a8e48d503?s=47 Jaime
November 13, 2013

The Path to Jedi Text Editing With VIM - Padawan Edition

Introduction to VIM :) (presented in dev friday at Medius)

1dfad8107453e0f493ff1a6a8e48d503?s=128

Jaime

November 13, 2013
Tweet

Transcript

  1. None
  2. None
  3. None
  4. …In the remotest galaxy… There’s Known as… planet a EARTH…

  5. Jaime ponders… True story

  6. None
  7. • 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)
  8. None
  9. “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. “
  10. “Vim is just a programming language for editing text” “edit

    text at the speed of thought”
  11. • 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
  12. • VIM Modes Normal or Command Insert Visual Command-line etc…

  13. • You spend more time editing and manipulating text than

    writing it in the first place • That’s why the initial mode is the NORMAL mode
  14. • The most important things are at the tip of

    your fingers You can move around right from the home row
  15. • Vim commands build upon each other with outstanding results

    d delete a character dw delete a word d2w delete two words
  16. • Vim commands build upon each other with outstanding results

    d2wword delete two (operator, count, motion)
  17. • Jedi Youngling • Jedi Padawan • Jedi Knight •

    Jedi Master • Jedi Grand Master
  18. 1. Learn touch typing 2. Normal and Insert modes 3.

    Basic commands
  19. • 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 <command> • :w -> save, :q -> quit, :wq -> save and quit
  20. None
  21. 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
  22. • 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
  23. • 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
  24. Taken from “Learn Vim Progressively” http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/

  25. • 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
  26. • Vim is design to tackle repetition • Use the

    . command to repeat the last change • Use <counter>. to repeat the last command • Learn which combos are more repeatable
  27. • /<regex> to seach for patterns (e.g. /hello) • n

    for next occurrence • N for previous occurrence • * runs search for word under cursor • f<character> find next occurrence of character in current line • ; next character in same line • , previous character in same line • F<character> find but in reverse • t<character>, like f but sets the cursor before the character
  28. • 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 • <C-v> -> go into visual mode with block selection • Useful for instance for: • J -> join all lines together • < > -> add indentation • = -> autoindent
  29. • In insert mode you can have code completion •

    Use <C-n> and <C-p>
  30. • 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
  31. • ReSharper is very keyboard friendly • Use ReSharper for

    macro refactorings • Use Vim for micro changes and moving around
  32. None
  33. None
  34. None
  35. None
  36. None
  37. 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!
  38. 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/
  39. Don’t overwrite Visual Studio and reSharper’s Key Bindings in the

    beginning
  40. Windows Mac

  41. None
  42. http://bit.ly/more-instantly-better-vim “More Instantly Better Vim” http://bit.ly/expert-level-vim “Write code faster: Expert-level

    vim”
  43. http://www.derekwyatt.org/vim/vim-tutorial-videos/ Vim tutorial videos http://vimcasts.org/ Vimcasts, Practical VIM

  44. None