Introduction         Getting started with vim                            Tasks               Search and replace           ...
Introduction          Getting started with vim                             Tasks                Search and replace        ...
Introduction         Getting started with vim                            Tasks               Search and replace           ...
Introduction         Getting started with vim                            Tasks               Search and replace           ...
Introduction          Getting started with vim                             Tasks                Search and replace        ...
Introduction         Getting started with vim                            Tasks               Search and replace           ...
Introduction                                    Introduction         Getting started with vim                             ...
Introduction                                     Introduction          Getting started with vim                           ...
Introduction                                     Introduction          Getting started with vim                           ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction                                      Introduction           Getting started with vim                         ...
Introduction           Getting started with vim                              Tasks                 Search and replace     ...
Introduction           Getting started with vim                              Tasks                 Search and replace     ...
Introduction           Getting started with vim                              Tasks                 Search and replace     ...
Introduction           Getting started with vim                              Tasks                 Search and replace     ...
Introduction           Getting started with vim                              Tasks                 Search and replace     ...
Introduction          Getting started with vim                             Tasks                Search and replace        ...
Introduction           Getting started with vim                              Tasks                 Search and replace     ...
Introduction          Getting started with vim                             Tasks                Search and replace        ...
Upcoming SlideShare
Loading in …5
×

Vi IMproved, a programmers text editor

1,477 views

Published on

A very quick introductory course on VIM, a programmers text editor. Part of our standard training courses for offshore software developers at Zeropoint.IT.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,477
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Vi IMproved, a programmers text editor

  1. 1. Introduction Getting started with vim Tasks Search and replace Configuration vim – Vi IMproved, a programmers text editor Bart Van Loon 31st January 20121 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  2. 2. Introduction Getting started with vim Tasks Search and replace Configuration 1 Introduction 2 Getting started with vim Introduction Starting and quitting The cursor Editing text 3 Tasks 4 Search and replace 5 Configuration2 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  3. 3. Introduction Getting started with vim Tasks Search and replace Configuration How it all began: vi A part of history text editor originally created for UNIX old: first release in 1976 (Open Source: BSD license) but modern: 2009 survey by Linux Journal → vi[m] most widely used text editor (36%); second place: gedit (19%)3 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  4. 4. Introduction Getting started with vim Tasks Search and replace Configuration How it all began: vi Modal editor vi is a modal editor: insert mode: typed text becomes part of the document normal mode: keystrokes are interpreted as commands i in normal mode: switch to insert mode; i again at this point: place an “i” character in the document esc in insert mode: switch to normal mode advantage: both text editing and command operations without requiring removal of hands from the home row ⇒ speed!4 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  5. 5. Introduction Getting started with vim Tasks Search and replace Configuration How it all began: vi It breaks my fingers! Many ideas, shortcuts, keystrokes, . . . can be explained by looking at a common computer keyboard from the seventies.5 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  6. 6. Introduction Getting started with vim Tasks Search and replace Configuration How it all began: vi Contemporary derivatives and clones vi: traditional vi ported to modern systems vim: (“Vi IMproved”) vi with many more features elvis: once popular clone with some extra features nvi: default derivative shipped with all BSDs vile: attempt to mix emacs and vi ...6 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  7. 7. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration vim Introduction first released publicly in 1991 (Open Source charityware) still actively developed and maintained cross platform additional features specifically designed for editing source code customisable through plugins and vimscript described as “very much compatible with vi”, but not 100% huge community constantly at war with the emacs-community7 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  8. 8. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration vim Sooooooo many features completion, comparison and merging of files, comprehensive integrated help system, extended regular expressions, scripting languages (both native and through alternative scripting interpreters such as Perl, Python, Ruby, Tcl, etc. . . ) including support for plugins, a graphical user interface, limited integrated development environment-like features, mouse interaction (both with and without the GUI), folding, editing of compressed or archived files in gzip, bzip2, zip, and tar format and files over network protocols such as SSH, FTP, and HTTP, session state preservation, spell checking, split (horizontal and vertical) and tabbed windows, unicode and other multi-language support, syntax highlighting, trans-session command, search and cursor position histories, multiple level undo/redo history which can persist across editing sessions, visual mode, . . .8 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  9. 9. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Getting started Starting vim vim; or vim <filename>; or vim [options] <filename> One useful option is +<n>, which opens the file and immediately puts the cursor on line <n>.9 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  10. 10. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Getting started Modes by default you start in normal mode go to insert mode from normal mode type i to start entering text at the cursor type R to start replacing text at the cursor type o to open a new line at the cursor type O to open a new line above the cursor hit esc to enter normal mode10 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  11. 11. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Getting started Exiting vim commands to quit: : x ← : save and quit : q ← : just quit : q ! ← : force quit (without saving!) shortcut from normal mode: Z Z : quit and save only if changes were made11 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  12. 12. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Moving the cursor Relative movements: h : one character left j : one line down k : one line up l : one character right w : one word forward b : one word back Adding a digit multiplies the movement. Try 5 w , 1 2 k , 2 b , ...12 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  13. 13. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Moving the cursor Absolute movements in the file: ^ or 0 : beginning of the line $ : end of the line g g : beginning of the file G : end of the file <d> G : line <d> ` . : your last edit13 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  14. 14. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Moving the cursor Absolute movements in the screen (visible area): H : highest line on the screen M : middle line on the screen L : lowest line on the screen ctrl-f : page (screen) forward ctrl-b : page (screen) backward14 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  15. 15. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Editing text Inserting text: i : insert text at the cursor a : insert text after the cursor (append) I : insert text at the beginning of the line A : insert text at the end of the line In insert mode, you can use the arrow keys to navigate the cursor, but often going back to normal mode will be much faster.15 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  16. 16. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Editing text Deleting text: x : delete character at the cursor (delete) X : delete character before the cursor (backspace) Replacing text: r <c> : replace the current character with <c>16 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  17. 17. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Visual mode For selecting areas of text, there is visual mode: v : start visual mode V : start visual line mode ctrl-v : start visual block mode17 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  18. 18. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Operators and motions Example operators: d : delete y : yank (copy) c : change Example motions1 : $ : to end of line G : to end of file e : to end of current word 1 remember the part on “moving your cursor”?18 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  19. 19. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Combining operators and motions Combining operators and motions generates some really powerful commands. Some examples are: y $ : copy from the cursor until the end of the line d g g : delete from the cursor until the beginning of the file Now lets add counts to increase the power: y 3 k : copy the previous 3 lines d 5 w : delete the next 5 words19 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  20. 20. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration More power Another nice operator: = : fix indenting Some other nice motions: ( : to the beginning of the current sentence ) : to the beginning of the next sentence % : to the matching bracket, parenthesis, braces, . . .20 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  21. 21. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Double operators When entering an operator twice, it operates on the complete current line: d d : delete the current line y y : copy the current line ...21 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  22. 22. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration The put command To paste previously deleted or yanked (copied) text: p : put (paste) after the cursor P : put (paste) before the cursor Some nice usage examples: x p : swap the current character with the next one d d p : swap the current line with the next one 5 p : paste 5 times after the cursor22 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  23. 23. Introduction Getting started with vim Tasks Search and replace Configuration Repeating tasks Undo and redo: You can think of each command (combined or not) as a task. . : repeat last task u : undo last task ctrl-r : undo last undo (redo) Typing text is also a task!23 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  24. 24. Introduction Getting started with vim Tasks Search and replace Configuration Macros A group of tasks can be recorded as a macro: q <a> : start recording macro with name <a> q : stop recording current macro @ <a> : replay macro with name <a>24 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  25. 25. Introduction Getting started with vim Tasks Search and replace Configuration Search To start: / <p> ← : forward search for <p> ? <p> ← : backward search for <p> Afterwards: n : repeat previous search N : repeat previous search in opposite direction25 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  26. 26. Introduction Getting started with vim Tasks Search and replace Configuration Search and replace Structure of the command: :As/B/C/D← with: A : area on which to operate B : the pattern to search for (regular expression) C : the new word to replace the found pattern with D : any flags to fine tune the behaviour26 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  27. 27. Introduction Getting started with vim Tasks Search and replace Configuration Search and replace Examples areas: % : the complete file ’<,’> : the selected area (empty) : the current line Example flags: c : confirm each substitution g : replace all occurrences on one line i : ignore the case for searching27 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  28. 28. Introduction Getting started with vim Tasks Search and replace Configuration ~/.vim* your configuration is stored in ~/.vimrc system-wide configuration is stored in /etc/vimrc your plugins, languages, . . . live in ~/.vim/28 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  29. 29. Introduction Getting started with vim Tasks Search and replace Configuration The set-command To change your configuration at runtime, use the set-command. Examples: :set spell← to enable spell checking :set number← show line numbers :set syntax=<lang>← to highlight according to <lang> To unset an option, prepend it with no: :set nospell← :set nonumber← ...29 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  30. 30. Introduction Getting started with vim Tasks Search and replace Configuration References the vimtutor-command http://en.wikipedia.org/wiki/Vi http://en.wikipedia.org/wiki/Vim_(text_editor) https://users.cs.jmu.edu/bernstdh/web/common/ help/vim.php http://www.youtube.com/watch?v=SI8TeVMX8pk http://www.youtube.com/watch?v=V3ccIf-cfnQ30 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex

×