Learning VI

           Advanced editing using vi
This file gives a more detailed description of the vi command set.

INSERTING TEXT

To leave the Insert mode, press 'Esc'
a              Append after cursor
A              Append after end of current line
i              Insert before cursor
I              Insert before beginning of current line
o              Open new line below current line and insert
O              Open new line above current line and insert
CTRL-vchar     While inserting, ignore special meaning of char
               (e.g., for inserting characters like Esc and control
               characters)
:r file        Read file, and insert after current line
J              Join next line to end of current line

DELETING TEXT

CTRL-h or
Backspace      While in Input Mode delete previous character

Typing a number before these commands will delete that amount of characters,
   words, or lines.
x              Deletes current character
dw             Delete current word
dd             Deletes current line

:n,md          Deletes lines n through m
D or d$        Delete from cursor to end of current line
dcursor_cmd    Delete text to cursor to cursor_cmd(e.g.,dG deletes from
               current line to end of file)

UNDOING AND REPEATING COMMANDS

u              Undo last command
U              Restore current line to original state
"np            Retrieve last nth delete(last 9 deletes are in a buffer)"
n              Repeat last / or ? search command
N              Repeat, in reverse direction, last / or ? search command
; (semi-colon) Repeat last f, F, t or T search command
, (comma)      Repeat, in reverse direction, last f, F, t or T search
               command
. (period)     Repeat last text change command

MOVING THE CURSOR

k or CTRL-p    Up
j or CTRL-j or
CTRL-n         Down
h or CTRL-h   
or Backspace   Left
l (lower case L)
or Spacebar    Right
w or W         Start of next word; W ignores punctuation
b or B         Start of previous word; B ignores punctuation
e or E         End of next word; E ignores punctuation
0 (zero)
or | (pipe)    First column in current line
n|             Column n in current line
^ (caret)      First non-blank character in current line
$              Last character in current line
+ or Return    First character in next line
-              First non-blank character in previous line
1G             First line in file
G              Last line in file
G$             Last character in file
nG             Line n in file
(              Back to beginning of sentence
)              Forward to beginning of next sentence
\{               Back to beginning of paragraph
\}               Forward to beginning of next paragraph

PATTERN MATCHING

Pattern matching characters help find strings with similar char-
acteristics.

:set magic     Allow pattern matching with special characters
               (default)
:set nomagic   Allow only ^ and $ as special characters
^ (caret)      Match beginning of line
$              Match end of line
. (period)     Match any single character
\<             Match beginning of word
\>             Match end of word
[str]          Match any single character in str
[^str]         Match any character not in str
[a-n]          Match any character between a and n
*              Match zero or more occurrences of previous character
               in expression
\              Escape meaning of next character(e.g. \$ lets you
               search for $)
\\             Escape the \ character

SAVE TEXT AND EXIT VI

ZZ or :wq or
:x             Save file and exit vi
:w file        Save file but do not exit. Omitting file saves current
               file
:w! file       Save file overriding normal checking
:n,mw file     Write lines n through m to file
:n,mw>>file    Append lines n through m to end of file
:q             Leave vi, saving changes before last write
               (you may be prompted to save first)
:q!            Leave vi without saving any changes since last write
Q              Escape vi into ex editor with same file; :vi returns
:e!            File-edit current file, disregarding changes since last
               write.


SEARCHING

f<char>        Search forward in current line to <char>
F<char>        Search backwards in curretn line to <char>
/<string>      Find next occurence of <string>
?<string>      Find previous occurence of <string>
:set ic        Ingnore case while searching
:set noic      Case sensitive while searching (default)

GLOBAL SEARCH AND REPLACE

:n,m s/<str1>/<str2>/<opt>     Search from n to m for <str1> and replace
                               it with <str2> with option <opt>. 
                               <opt> can be c - confirm changes
                                             g - global replace
                                             p - to print changed lines
(Ex- :1,$ s/foo/bar/g         Replaces every occurence of "foo" with the
                               string "bar".)

:g/<str>/<cmd>                 Run <cmd> on all lines that contain <str>
:g/<str1>/s/<str2>/<str3>/     Find line containing <str1>, replace <str2>
                               with <str3>
:v/<str>/<cmd>                 Execute <cmd> on all lines that do not
                               match <str>   

COPYING AND PLACING TEXT

( These commands may be preceded by a number to multiply commands )
yy or Y      Yank current line into the buffer ( copy )
nyy or nY    Yank n amount of line into buffer
p            Insert line(s) in buffer after cursor; also prints
             last deleted text
P            Insert line(s) in buffer before cursor

USEFUL OPTIONS

:set all         Displays all options you may "set"
:set showmode    Displays "INPUT MODE" while in input mode
:set tabstop=n   Sets the tabwidth of the tab key to n spaces;
                 8 is default, but 4 may be preferable
:set list        Displays all control characters in document;
                 end of lines are shown as '$'  

 

VI Powered Button

 

 

 

 

 

 

             [Home]      [FBSD Articles]      [Scripts Corner]      [Contribute]        [Search]      [FBSD Links]      [Files]

   About Us

FreeBSD Articles
   *Hardware
   *Networking
   *Security
   *Software
   *X Windows

Forums
Defcon1 Forum

Files / Scripts
Newbies Corner
Tech. Talk
Tips and Tricks


FreeBSD Links

Articles in other
Languages :
   *French Articles
   *Spanish Articles


Want to Help ?
      Click Here

Email Users

 

 

Header-Chuckie-2008

This site cannot be duplicated without permission

© 1998 - 2008 Defcon1, www.defcon1.org , Copyrights for all materials on this web site are held by the individual authors, artists, photographers or creators. Materials may not be reproduced or otherwise distributed without permission
of www.defcon1.org and the content's original author.