Friday, 24 May 2013

Unix VI Editor commands

START VI EDITTOR
----------------
     vi filename     edit filename starting at line 1
      vi -r filename     recover filename that was being edited when system crashed
   
EXIT VI
--------
    :x<Return>     quit vi, writing out modified file to file named in original invocation
      :wq<Return>     quit vi, writing out modified file to file named in original invocation
      :q<Return>     quit (or exit) vi
     :q!<Return>     quit vi even though latest changes have not been saved for this vi call

MOVING THE CURSOR:
-----------------
    j or <Return>
  [or down-arrow]     move cursor down one line
     k [or up-arrow]     move cursor up one line
     h or <Backspace>
  [or left-arrow]     move cursor left one character
     l or <Space>
  [or right-arrow]     move cursor right one character
     0 (zero)     move cursor to start of current line (the one with the cursor)
     $     move cursor to end of current line
      w     move cursor to beginning of next word
      b     move cursor back to beginning of preceding word
      :0<Return> or 1G     move cursor to first line in file
      :n<Return> or nG     move cursor to line n
      :$<Return> or G     move cursor to last line in file
   
SCREEN MANIPULATION:
-------------------
     ^f     move forward one screen
      ^b     move backward one screen
      ^d     move down (forward) one half screen
      ^u     move up (back) one half screen
      ^l     redraws the screen
      ^r     redraws the screen, removing deleted lines
   
UNDO:
-----
    u     UNDO WHATEVER YOU JUST DIDA
   
INSERTING OR ADDING TEXT:
------------------------

    i     insert text before cursor, until <Esc> hit
      I     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
      Ncc or cNc     change (replace) the next N lines, starting with the current line,
        stopping when <Esc> is hit   
       
DELETING TEXT:
--------------

    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
      D     delete the remainder of the line, starting with current cursor position
     dd     delete entire current line
      Ndd or dNd     delete N lines, beginning with the current line;
  e.g., 5dd deletes 5 lines

CUT & PASTE:
-----------
    yy     copy (yank, cut) the current line into the buffer
      Nyy or yNy     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 STRING:
-----------------   
    /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
 
DELETING LINE NUMBERS:
----------------------

    :.=     returns line number of current line at bottom of screen
      :=     returns the total number of lines at bottom of screen
      ^g     provides the current line number, along with the total number of lines,
        in the file at the bottom of the screen
       
SAVING & READING FILES:
-----------------------
    :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
   
MOVING THE CURSOR:
-----------------
    h    left one space       
    l    right one space
    j    down one space       
    k    up one space

No comments:

Post a Comment