vi/vim command summary

The following tables contain all the basic vi commands.
Starting vi

Command Description
vi file start at line 1 of file
vi +n file start at line n of file
vi + file start at last line of file
vi +/pattern file start at pattern in file
vi -r file recover file after a system crash

Saving files and quitting vi

Command Description
:e file edit file (save current file with :w first)
:w save (write out) the file being edited
:w file save as file
:w! file save as an existing file
:q quit vi
:wq save the file and quit vi
:x save the file if it has changed and quit vi
:q! quit vi without saving changes

Moving the cursor

Keys pressed Effect
h left one character
l or <Space> right one character
k up one line
j or <Enter> down one line
b left one word
w right one word
( start of sentence
) end of sentence
{ start of paragraph
} end of paragraph
1G top of file
nG line n
G end of file
<Ctrl>W first character of insertion
<Ctrl>U up ½ screen
<Ctrl>D down ½ screen
<Ctrl>B up one screen
<Ctrl>F down one screen

Inserting text

Keys pressed Text inserted
a after the cursor
A after last character on the line
i before the cursor
I before first character on the line
o open line below current line
O open line above current line

Changing and replacing text

Keys pressed Text changed or replaced
cw word
3cw three words
cc current line
5cc five lines
r current character only
R current character and those to its right
s current character
S current line
~ switch between lowercase and uppercase

Deleting text

Keys pressed Text deleted
x character under cursor
12x 12 characters
X character to left of cursor
dw word
3dw three words
d0 to beginning of line
d$ to end of line
dd current line
5dd five lines
d{ to beginning of paragraph
d} to end of paragraph
:1,. d to beginning of file
:.,$ d to end of file
:1,$ d whole file

Using markers and buffers

Command Description
mf set marker named “f”
`f go to marker “f”
´f go to start of line containing marker “f”
“s12yy copy 12 lines into buffer “s”
“ty} copy text from cursor to end of paragraph into buffer “t”
“ly1G copy text from cursor to top of file into buffer “l”
“kd`f cut text from cursor up to marker “f” into buffer “k”
“kp paste buffer “k” into text

Searching for text

Search Finds
/and next occurrence of “and”, for example, “and”, “stand”, “grand”
?and previous occurrence of “and”
/^The next line that starts with “The”, for example, “The”, “Then”, “There”
/^The> next line that starts with the word “The”
/end$ next line that ends with “end”
/[bB]ox next occurrence of “box” or “Box”
n repeat the most recent search, in the same direction
N repeat the most recent search, in the opposite direction

Searching for and replacing text

Command Description
:s/pear/peach/g replace all occurrences of “pear” with “peach” on current line
:/orange/s//lemon/g change all occurrences of “orange” into “lemon” on next line containing “orange”
:.,$/<file/directory/g replace all words starting with “file” by “directory” on every line from current line onward, for example, “filename” becomes “directoryname”
:g/one/s//1/g replace every occurrence of “one” with 1, for example, “oneself” becomes “1self”, “someone” becomes “some1”

Matching patterns of text

Expression Matches
. any single character
* zero or more of the previous expression
.* zero or more arbitrary characters
< beginning of a word
> end of a word
quote a special character
* the character “*
^ beginning of a line
$ end of a line
[set] one character from a set of characters
[XYZ] one of the characters “X”, “Y”, or “Z”
[[:upper:]][[:lower:]]* one uppercase character followed by any number of lowercase characters
[^set] one character not from a set of characters
[^XYZ[:digit:]] any character except “X”, “Y”, “Z”, or a numeric digit

Options to the :set command

Option Effect
all list settings of all options
ignorecase ignore case in searches
list display <Tab> and end-of-line characters
mesg display messages sent to your terminal
nowrapscan prevent searches from wrapping round the end or beginning of a file
number display line numbers
report=5 warn if five or more lines are changed by command
term=ansi set terminal type to “ansi”
terse shorten error messages
warn display “[No write since last change]” on shell escape if file has not been saved

  One Response to “vi/vim command summary”

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

使用腾讯微博登陆

Protected by WP Anti Spam
   
© 2011 Information Retrieval Blog Suffusion theme by Sayontan Sinha