打开编辑器命令:
vi filename /*打开filename文件*/
vi +n filename /*打开文件,并将光标置于第n行首*/
vi + filename /*打开文件,并将光标置于最后一行首*/
vi +/pattern filename /*打开文件,并将光标置于第一个与pattern匹配的串处*/
vi -r filename /*在上次正用vi编辑时发生系统崩溃,恢复filename*/
vi filename1 filename2 /*打开多个文件,依次进行编辑*/
Vi编辑器包括命令模式和插入模式,命令模式下可以进行删除,保存,搜索等操作。 插入模式下进行内容的修改,插入模式按 ESC 会回到命令模式。 以下操作基本都在命令模式下,注意区分大小写。
保存操作(先输入 : 号,再输入选项,格式如下):
:w /*保存文件*/
:w filename /*保存至文件filename*/
:q /*退出编辑器*/
:q! /*退出编辑器,且不保存*/
:wq /*退出编辑器,且保存文件*/
:x /*保存(如果当前文件修改过)并退出*/
移动操作:
1,方向键移动。
2,其他移动命令:
h /*光标左移一个字符*/
l /*光标右移一个字符*/
space /*光标右移一个字符*/
Backspace /*光标左移一个字符*/
k或ctrl+p /*光标上移一行*/
j或ctrl+n /*光标下移一行*/
Enter /*光标下移一行*/
w /*光标右移一个字至字首*/
b /*光标左移一个字至字首*/
e /*光标右移一个字至字尾*/
) /*光标移至句尾*/
( /*光标移至句首*/
} /*光标移至段落开头*/
{ /*光标移至段落结尾*/
nG /*光标移至第n行首*/
n+ /*光标下移n行*/
n- /*光标上移n行*/
n$ /*光标移至第n行尾*/
H /*光标移至屏幕顶行*/
M /*光标移至屏幕中间行*/
L /*光标移至屏幕最后行*/
0 /*(数字零)光标移至当前行首*/
$ /*光标移至当前行尾 */
G /*光标移至文件的底部*/
屏幕翻滚操作:
Ctrl+u /*向文件首翻半屏*/
Ctrl+d /*向文件尾翻半屏*/
Ctrl+f /*向文件尾翻一屏*/
Ctrl+b /*向文件首翻一屏*/
nz /*将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部*/
删除恢复操作:
x或X /*删除一个字符,x删除光标后的,而X删除光标前的*/
dd /*删除整行*/
do /*删至行首*/
d$ /*删至行尾*/
nx /*删除从光标开始的n个字符*/
ndd /*删除包括当前行在内的向下n行*/
ndw或ndW /*删除光标处开始及其后的n-1个字*/
u /*撤销上一步操作*/
U /*撤销对当前行的所有操作*/
Ctrl+u /*删除输入方式下所输入的文本*/
搜索及替换操作:
/text /*向光标下搜索text字符串*/
?text /*向光标上搜索text字符串*/
n /*向下搜索前一个搜素动作*/
N /*向上搜索前一个搜索动作*/
:s/P1/P2 /*将当前行中首次出现的P1用P2替代*/
:s/p1/p2/g /*将当前行中所有p1均用p2替代*/
:n1,n2 s/p1/p2/g /*将第n1至n2行中所有p1均用p2替代*/
:%s/p1/p2/g /*将文件中所有p1均用p2替换*/
:%s/^/text/g /*在整个文件每一行的行首插入“text”*/
:%s/$/text/g /*在整个文件每一行的行尾添加“text”*/
复制及粘帖操作:
yy /*将当前行复制到缓存区,也可以用"ayy"复制,a为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务*/
nyy /*将当前行向下n行复制到缓冲区,也可以用 "anyy"复制,a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务*/
yw /*复制从光标开始到词尾的字符*/
nyw /*复制从光标开始的n个单词*/
y^ /*复制从光标到行首的内容*/
y$ /*复制从光标到行尾的内容*/
p /*粘贴剪切板里的内容在光标后,如果使用了自定义缓冲区,使用"ap 进行粘贴*/
P /*(大写P)粘贴剪切板里的内容在光标前,如果使用了自定义缓冲区,使用"aP 进行粘贴*/
插入切换到编辑模式操作:
i /*在当前光标位置的左边添加文本*/
I /*在当前行的末尾位置添加文本*/
a /*在当前光标位置的右边添加文本*/
A /*在当前行的末尾位置添加文本*/
o /*在当前行的下面新建一行*/
O /*在当前行的上面新建一行*/
r /*替换当前字符*/
R /*替换当前字符及其后的字符,直至按ESC键*/
J /*合并光标所在行及下一行为一行*/
s /*从当前光标位置处开始,以输入的文本替代指定数目的字符*/
S /*删除指定数目的行,并以所输入文本代替*/
ncw或nCW /*修改指定数目的字*/
nCC /*修改指定数目的行*/
其他操作:
:e filename /*打开文件名为filename的其他文件编辑*/
:set nu /*显示行号*/
:set nonu /*取消显示行号*/
:n /*用vi file1 file2 打开2个以上文件时候,切换到下一个文件*/