vi命令如何常用,放于此以备查。
% vi file
:
Last line mode ----> Command mode ----> Insert mode
<----
<----
(auto)
Esc
Last line mode:
/exp Go forward to exp
?exp Go backward to exp
:w Write buffer to disk
:w newfile Write buffer to newfile
:w! file Write Absolutely
:q Quit editor
:q! Quit,discarding buffer
:wq Write buffer and quit
:x Write if needed & quit
:f Edit & file status
:r Read file into buffer
:r file Read named file in
:e (Re)edit file
:e! (Re)edit,discard file in
:e file Edit nameed file
:3,8d Delete lines 3-8
:4,9m 12 Move lines 4-9 to 12
:2,5t 13 Copy lines 2-5 to 13
:5,9w file Write lines 5-9 to file
:s/old/new/ Current line,sub first "old" w/ "new"
:s/old/new/g Current line,sub each "old" w/ "new"
:3,9s/old/new Lines 3-9,sub first "old" w/ "new"
:%s/old/new All lines,sub first "old" w/ "new"
:%s/old/new/g All lines,sub each "old" w/ "new"
:s/pat./new A . matches any charcter
:s/pat*/new A * matches 0 or more "t"s
:s/pa[0-9aeioA-Z]/new selection set or range
:s/pa[^aeiou]/new match any non-vowel
:s/^pat/new anchor "par" to beginning of line
:s/pats/new anchor "par" to end of line
:s/old/& and new/ restoe matched pattern on sub
:%s/./ &/ indenta whoie file
:set nu Display line numbers
:set nonu Turn off option
:set all Show all settings
:set list Try to display invisible chars
:set wm=5 Wrap lines 5 sp from R margin
Command mode:
<- | ->
hljk Cursor movement
G Goto last file line
3G Goto line 3
0 Goto line start
$ Goto line end
% Goto matching brace/paren
H Goto screen top
M Goto screen middle
L Goto screen bottom
w Go forward 1 word
3w Go forward 3 word
b Go back 1 word
3b Go back 3 word
n Repeat previous search
N Reverse previous search
x Delete one character
dw Delete one word
dd Delete one line
D Delete to end of line
d0 Delete to beginning of line
dG Delete to end of file
4dd Delete 4 lines
u Undo last change
. Do last chang
Y Yank a copy of a line
5Y Yank a copy of 5 lines
P Put below cursor
p Put above cursor
J Join next line to current
4J Join 4 lines to current
>> Shift a line right
3>> Shift 3 lines right
^d 1/2 scroll forward
^u 1/2 scroll backwards
^f Scroll forward
^b Scroll backwards
n Repeat previous search
N Reverse previous search
ZZ Write if needed & quit vi
Insert mode:
a Append after cursor
A Append at line end
cw Change a word
3cw Change 3 words
C Change line
i Insert before cursor
5i Insert at 5 times
I Insert at beginning of line
o Open a linebelow cursor
O Open a line above cursor
r Replace one character
R Replace/type-cver a line
s Substitute a character
S Substitue a line