Friday, June 7, 2013

Basic VI Commands:

To Start vi
To use vi on a file, type in vi filename. If the file named filename exists, then the first page (or screen) of the file will be displayed; if the file does not exist, then an empty file and screen are created into which you may enter text.

vi filename  : edit filename starting at line 1

vi -r filename : recover filename that was being edited when system crashed


To Exit vi:

To save and quit:    ESC : x Enter       : quit vi, writing out modified file to file named in original invocation
                               ESC :wq Enter     : quit vi, writing out modified file to file named in original invocation


To unsave and quit : ESC :q!             : quit vi even though latest changes have not been saved for this vi call



Moving the Cursor:


ESC + j                  : move cursor down one line

ESC + k                  : move cursor up one line

ESC + h                  : move cursor left one character

ESC + l                  : move cursor right one character

ESC + 0                  : move cursor to start of current line (the one with the cursor)

ESC + $                  : move cursor to end of current line

ESC + w                  : move cursor to beginning of next word

ESC + b                  : move cursor back to beginning of preceding word

ESC : 0 or ESC 1G   : move cursor to first line in file

ESC : n or ESC nG   : move cursor to line n

ESC : $ or ESC G   : move cursor to last line in file


Screen Manipulation:

The following commands allow the vi editor screen (or window) to move up or down several lines and to be refreshed.


CTRL+ f : move forward one screen

CTRL+ b : move backward one screen

CTRL+ d : move down (forward) one half screen

CTRL+ u : move up (back) one half screen

Adding, Changing, and Deleting Text:

ESC+ u  : UNDO WHATEVER YOU JUST DID; a simple toggle

Inserting or Adding Text :

The following commands allow you to insert and add text. Each of these commands puts the vi editor into insert mode; thus, the <Esc> key must be pressed to terminate the entry of text and to put the vi editor back into command mode.

i              : insert text before cursor, until <Esc> hit

I in caps  : insert text at beginning of current line, until <Esc> hit

a             : append text after cursor, until <Esc> hit

A             : append text to end of current line, until <Esc> hit

o             : open and put text in a new line below current line, until <Esc> hit

O            : open and put text in a new line above current line, until <Esc> hit

Changing Text:


r     : replace single character under cursor (no <Esc> needed)

R    : replace characters, starting with current cursor position, until <Esc> hit

cw : change the current word with new text, starting with the character under cursor, until <Esc> hit

cNw : change N words beginning with character under cursor, until <Esc> hit;   e.g., c5w changes 5 words

C   : change (replace) the characters in the current line, until <Esc> hit

cc  : change (replace) the entire current line, stopping when <Esc> is hit


Deleting Text :

ESC + x  : delete single character under cursor

Nx         : delete N characters, starting with character under cursor

dw        : delete the single word beginning with character under cursor

dNw     : delete N words beginning with character under cursor;   e.g., d5w deletes 5 words

ESC +dd : delete entire current line

dND        :delete N lines, beginning with the current line;   e.g., 5dd deletes 5 lines

Cutting and Pasting Text:

ESC+yy    : copy (yank, cut) the current line into the buffer

Esc +Nyy  : copy (yank, cut) the next N lines, including the current line, into the buffer

p             : put (paste) the line(s) in the buffer into the text after the current line



Searching Text :


/string : search forward for occurrence of string in text

?string : search backward for occurrence of string in text

 n       : move to next occurrence of search string

N       :move to next occurrence of search string in opposite direction


Determining Line Numbers :

Being able to determine the line number of the current line or the total number of lines in the file being edited is sometimes useful.

:.= returns line number of current line at bottom of screen

:= returns the total number of lines at bottom of screen

Ctrl+g   : provides the current line number, along with the total number of lines,in the file at the bottom of the screen.


Saving and Reading Files:

These commands permit you to input and output files other than the named file with which you are currently working.


:r filename<Return> : read file named filename and insert after current line (the line with cursor)

:w<Return>           :write current contents to file named in original vi call

:w newfile<Return> : write current contents to a new file named newfile

:12,35w smallfile<Return> : write the contents of the lines numbered 12 through 35 to a new file named smallfile

:w! prevfile<Return>  : write current contents over a pre-existing file named prevfile






No comments:

Post a Comment