Posted: Tuesday, October 05, 2010 5:23 PM Quote
Vi has two modes insertion mode and command mode. The editor begins in command mode, where cursor movement and copy/paste editing occur. Most commands execute as soon as typed except for "colon" commands which execute when you press the return key. Switch to Text or Insert mode: Open line above cursor O Insert text at beginning of line I Insert text at cursor i Insert text after cursor a Append text at line end A Open line below cursor o Switch to Command mode: Switch to command mode Cursor Movement (command mode): Scroll Backward 1 screen b Scroll Up 1/2 screen u Go to beginning of line 0 Go to line n nG Go to end of line $ Scroll Down 1/2 screen d Go to line number ## :## Scroll Forward 1 screen f Go to last line G Scroll by sentence f/b ( ) Scroll by word f/b w b Move left, down, up, right h j k l Left 6 chars 6h Scroll by paragraph f/b { } Directional Movement Arrow Keys Go to line #6 6G Deleting text (command mode): Change word cw Replace one character r Delete word dw Delete text at cursor x Delete entire line (to buffer) dd Delete (backspace) text at cursor X Delete 5 lines (to buffer) 5dd Delete current to end of line D Delete lines 5-10 :5,10d Editing (command mode): Copy line yy Copy n lines nyy Copy lines 1-2/paste after 3 :1,2t 3 Paste above current line P Paste below current line p Move lines 4-5/paste after 6 :4,5m 6 Join previous line J Search backward for string ?string Search forward for string /string Find next string occurrence n % (entire file) s (search and replace) /old text with new/ c (confirm) g (global - all) :%s/oldstring/newstring/cg Ignore case during search :set ic Repeat last command . Undo previous command u Undo all changes to line U Save and Quit (command mode): Save changes to buffer :w Save changes and quit vi :wq Save file to new file :w file Quit without saving :q! Save lines to new file :10,15w file :syntax on Turn on syntax highlighting :syntax off Turn off syntax highlighting :set number Turn on Line numbering (shorthand :set nu) :set nonumber Turn off Line numbering (shorthand :set nonu) :set ignorecase Ignore case sensitivity when searching :set noignorecase Restore case sensitivity (default) :set autoindent Turn on Auto-indentation Use the command >> to indent and the << command to outdent :set shiftwidth=4 Set indentation to four spaces :set noautoindent Turn off Auto-indentation “vi was written for a world that doesn't exist anymore - unless you decide to get a satellite phone and use it to connect to the Net at 2400 baud” - Bill Joy