The vi editor (visual editor) - A quick reference guide.

To startup vi:

vi filename

Vi has three main modes Command mode, Insert mode and Command-Line mode.

vi modes

The editor begins in command mode, where cursor movement and copy/paste commands can be issued.
If you are ever unsure which mode you're in, press Esc to return to command mode.

Insert text (Insert mode):
    Open line above cursor O        
Insert text at beginning of line I Insert text at cursor i append text after cursor a Append text at line end A
    Open line below cursor o        

Switch to Command mode:

Switch to command mode: [ESC]

Most commands execute as soon as typed except for "colon" commands which execute when you press the return key.

Cursor Movement (command mode):

    Scroll Backward 1 screen [ctrl] b  
    Scroll Up 1/2 screen [ctrl] u  
Go to beginning of line 0 Go to line n nG Go to end of line $
    Scroll Down 1/2 screen [ctrl] d Go to line number ## :##
    Scroll Forward 1 screen [ctrl] 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 { } Move left, down, up, right Arrow Keys Go to line #6 6G

Delete 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,2t3
Paste above current line P      
Paste below current line p     Move lines 4-5 /paste after 6 :4,5m6
    Find the next t ft 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 current file, if modified, and quit :x or ZZ Save file to new file :w file
    Save changes and quit vi :wq Save lines to new file :10,15w file
    Quit without saving :q!    

In general a number n preceding any vi command will tell vi to repeat that command n times.

: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

Example

Change all Windows CR/LF to Unix style LF line endings in the current file:
:g/^M/s///g
(To enter the ^M, type CTRL-V CTRL-M)

Command-line mode
Command-line mode commands are typed at the bottom of the screen.
To enter Command-line mode from Command mode, push colon : a colon will appear at the bottom.

The Ex mode is similar to the command line mode as it also allows you to enter Ex commands. Unlike the command-line mode you won’t return to normal mode automatically. You can enter an Ex command by typing a Q in normal mode and leave it again with the :visual command. Note that the Ex mode is designed for Batch processing and as such won’t support mappings or command-line editing.

vi is short for visual editor and is pronounced as the two letters: “vee eye

The vi editor was an update on the earlier ex (and ed) editors, it introduced a Visual Interactive mode which was contracted to give the name vi.

“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

Related

vimhelp.org - Full list of VI commands
OpenVIM tutorial
Learning the vi Editor - How to use the vi editor.
History and effective use of Vim - Joe Nelson.
How to grok vi - Stack Overflow.
bcvi - Back Channel vi - remote file editing with SSH.
Kate - Text Editor (cross platform).
book - Practical vim by Drew Neil.
book - Learning the vi & vim Editor
MacVim & MacVim vs TextMate


 
Copyright © 1999-2026 SS64.com
Some rights reserved