Upon completion of this unit, you should be able to:
  • Use the three primary modes of vi and vim
  • Navigate text and enter Insert mode
  • Change, delete, yank and put text
  • Undo changes
  • Search a document
  • Save and exit
Introducing vim
1) New version of vi, the standard Unix text editor
  • Executing vi runs vim by default
2) gvim: Graphical version of vim
  • Applications + Programming –> Vi iMproved
  • Provided by vim-X11 package
3) Advantages:
  • Speed: Do more with fewer keystrokes
  • Simplicity: No dependence on mouse/GUI
  • Availability: Included with most Unix-like OSes
4) Disadvantages:
  • Difficulty: Steeper learning curve than simpler editor. Key bindings emphasizes speed over intuitiveness
vim: A Modal Editor
1) Keystroke behavior is dependent upon vim’s “mode”
2) Three main modes
  • Command mode (default): Move cursor, cut/paste text, change mode
  • Insert mode: Modify text
  • Ex Mode: Save, quit, etc
3) Esc exits current mode
4) EscEsc always returns to command mode
vim Basics
1) To use vim, you must at least be able to
  • Open a file
  • Modify a file (insert mode)
  • Save a file (ex mode)
Openig a file in vim
1) To start vi:
  • vim filename
  • If the file exists, the file is opened and the contents are displayed
  • If the file does not exist, vi creates it when the edits are saved for the first time
Modifying a File – Insert Mode
1) i begins insert mode at the cursor
2) Many other options exist
  • A append to end of line
  • I insert at the begining of the line
  • o insert a new line (below)
  • O insert a new line (above)
Saving a File and Exiting vim – Ex Mode
1) Enter Ex mode with:
  • Creates a command prompt at bottom-left of screen
2) Common write/quit commands:
  • :w writes (saves) the file to disk
  • :wq wirtes and quits
  • :q! quits, even if changes are lost
Using Command Mode
1) Default mode of vim
2) Keys describe movement and text manipulation commands
3) Commands repeate when preceded by a number
4) Example
  • Right Arrow moves right one character
  • 5, Right Arrow moves five characters
Moving  Around Command Mode
1) Move by characters: Arrow Keys, h, j, k, l
2) Move by word: w, b
3) Move by sentence: ), (
4) Move by paragraph: }, {
5) Jump to line x: xG
6) Jump to end: G
Search and Replace Comomand Mode
1) Search as in less: /, n, N
2) Search/ Replace as in sed
  • Affects current line by default
  • Use x,y range of % for whole file
:1, 5s/cat/dog/
Manipulating Text Command Mode
Line cc dd yy
Letter cl dl yl
Word cw dw yw
Sentence ahead c) d) y)
Sentence behind c( d( y(
Paragraph above c{ d
Paragraph below c} d} y}
Undoing Changes Command Mode
1) u undo most recent changes
2) U undo all changes to the current line since the cursor landed on the line
3) Ctrl+r redo last “undo” change
Visual Mode
1) Allows selection of blocks of text
  • v starts character-oriented highlighting
  • V starts line-oriented highlighting
  • Activated with mouse in gvim
2) Visual keys can be used in conjuction with movement keys: w, ), }, arrow, etc
3) Highlighted text can be deleted, yanked, changed, filtered, search/replace, etc.
Using multiple “Windows”
1) Multiple documents can be viewed in a single vim screen
  • Ctrl+w, s splits the screen horizontally
  • Ctrl+w, v splits the screen vertically
  • Ctrl+w, Arrow moves between windows
2) Ex-mode instructions always affect the current window
3) :help windows displays more window commands.
Configuring vi and vim
1) Configuring on the fly
  • :set or :set all
2) Configuring permanently
  • ~/.vimrc or ~/.exrc
3) A few common configuration items
  • :set number
  • :set autoindent
  • :set text (vim only)
  • :set wrapmargin=15
  • :set ignorecase
4) Run: help option-list for a complete file
Learning more
1) vi/ vim built-in help
  • :help
  • :help topic
  • Use :q to exit help
2) vimtutor command
End of Unit9
1) Questions and Answers
2) Summary
  • Use the three primary modes of vi and vim
  • Move the cursor and enter Insert mode
  • Change, delete, yank and put text
  • Undo changes
  • Search a document
  • Save and exit