vi

来源:互联网 发布:百度推广优化技巧 编辑:程序博客网 时间:2024/06/02 02:26

在用户的家目录下,建立文件.vimrc;
$vi .vimrc
添加几行:
set nu//设置行号
set autoindent
set ts=4 //这个是设置tap的大小为4个空格。

Modes
Vi has two modes: insertion mode, and command mode.
The editor begins in command mode, where cursor movement
and text deletion and pasting occur. Insertion mode
begins upon entering an insertion or change command.
[ESC] returns the editor to command mode (where you can
quit, for example by typing :q!). Most commands execute
as soon as you type them except for “colon” commands
which execute when you press the return key.

 

Quitting
exit, saving changes :x
quit (unless changes) :q
quit (force, even if unsaved) :q!
Inserting text
insert before cursor, before line i , I
append after cursor, after line a , A
open new line after, line before o , O
replace one char, many chars r , R

Motion
left, down, up, right h , j , k , l
next word, blank delimited word w , W
beginning of word, of blank delimited word b , B
end of word, of blank delimited word e , E
sentence back, forward ( , )
paragraph back, forward { , }
beginning, end of line 0 , $
beginning, end of file 1G , G
line n n G or :n
forward, back to char c fc , Fc
forward, back to before char c tc , Tc
top, middle, bottom of screen H , M , L

 

Deleting text
Almost all deletion commands are performed by typing d
followed by a motion. For example dw deletes a word. A
few other deletions are:
character to right, left x , X
to end of line D
line dd
line :d

 

Yanking text
Like deletion, almost all yank commands are performed by
typing y followed by a motion. For example y$ yanks to
the end of line. Two other yank commands are:
line yy
line :y

 

Changing text
The change command is a deletion command that leaves
the editor in insert mode. It is performed by typing c followed
by a motion. For example cw changes a word. A few
other change commands are:
to end of line C
line cc

 

Putting text
put after position or after line p
put before position or before line P

 

Registers
Named registers may be specified before any deletion,
change, yank, or put command. The general prefix has
the form “c where c may be any lower case letter. For
example, “adw deletes a word into register a. It may thereafter
be put back into the text with an appropriate put
command, for example “ap.

 

Markers
Named markers may be set on any line of a file. Any lower
case letter may be a marker name. Markers may also be
used as the limits for ranges.
set marker c on this line mc
goto marker c ‘c
goto marker c first non-blank ’c
Search for strings
search forward /string
search backward ?string
repeat search in same, reverse direction n , N

 

Replace
The search and replace function is accomplished with the
:s command. It is commonly used in combination with
ranges or the :g command (below).
replace pattern with string :s/pattern /string /flags
flags: all on each line, confirm each g , c
repeat last :s command &

Regular expressions
any single character except newline . (dot)
zero or more repeats *
any character in set [...]
any character not in set [^ ...]
beginning, end of line ^ , $
beginning, end of word \< , \>
grouping \(. . . \)
contents of n th grouping \n

 

Counts
Nearly every command may be preceded by a number that
specifies how many times it is to be performed. For example
5dw will delete 5 words and 3fe will move the cursor
forward to the 3rd occurance of the letter e. Even insertions
may be repeated conveniently with this method, say
to insert the same line 100 times.

 

Ranges
Ranges may precede most “colon” commands and cause
them to be executed on a line or lines. For example :3,7d
would delete lines 3−7. Ranges are commonly combined
with the :s command to perform a replacement on several
lines, as with :.,$s/pattern/string/g to make a replacement
from the current line to the end of the file.
lines n-m :n ,m
current line :.
last line :$
marker c :’c
all lines :%
all matching lines :g/pattern /

 

Files
write file (current file if no name given) :w file
append file (current file if no name given) :w >>file
read file after line :r file
read program output :r !program
next file :n
previous file :p
edit new file :e file
replace line with program output :.!program

 

Other
toggle upper/lower case ~
join lines J
repeat last text-changing command .
undo last change, all changes on line u , U

原创粉丝点击