vi编辑器快捷键使用详解

文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,这里列了一些常用命令的用法
进入vi的命令;

vi filename:打开或者新建文件,并将光标置于第一行首
vi +n filename:打开文件,并将光标置于第n行首
vi + filename:打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename:在上次用vi编辑时发生系统崩溃,恢复filename

移动光标类命令;

h:光标左移一个字符
l:光标右移一个字符
space:光标右移一个字符
backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n:光标下移一行
enter:光标下移一行
w或W:光标右移一个字至字首
b或B:光标左移一个字至字首
e或E:光标右移一个字至字尾
):光标移至句尾(:光标移至句首
}:光标移至段落结尾
{:光标移至段落开头
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H:光标移至屏幕顶行
M:光标移至屏幕中间行
L:光标移至屏蔽底行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令;

ctrl+u:向文件首翻半屏
ctrl+d:向文件尾翻半屏
ctrl+f:向文件尾翻一屏
ctrl+b:向文件首翻一屏
nzz:将第n行滚至屏幕顶部

插入文本类命令;

i:在光标前
I:在当前光标所在行行首
a:在光标后
A:在当前光标所在行行尾
o:在当前光标所在行下新开一行
O:在当前光标所在行上新开一行
r:替换当前字符(选中字符输入r后,则选中字符可被下次输入的字符替换)
R:替换当前字符及其后的字符,直至ESC键(选中字符输入R后,则选中字符及之后的字符可被下次输入的字符替换)
s:删除当前光标选中的字符,并输入想要替代的一个或者多个字符
S:删除当前光标选中的这行字符,并输入想要替代的字符
nC: 删除含光标所在行在内,光标下n行的字符

复制删除命令;

yy:复制当前光标所在行所有字符
nyy:复制包含当前光标所在行在内的之后n行字符
p:在当前光标所在行的下一行粘贴之前复制的字符
d$:删除当前光标所在字符及光标之后这行的字符
dd:删除当前光标所在行
ndd:删除含当前光标所在行以内的以下的n行字符
x或X:删除一个字符,x删除光标后的字符,X删除光标前的字符
dG:删除当前光标所在行以及之后所有的字符

搜索以及替换命令;

/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g :将当前行中所有p1均用p2代替
:n1,n2s/p1/p2/g :将第n1至第n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置;

all:列出所有选项设置情况
number:显示出当前光标所在行的行数
list:显示制表位(ctrl+I)和行尾标志($)
set nu:显示所有行的行数
最后行方式命令;
:q:退出vi
:q!:不保存文件并退出vi
:x:保存当前文件并退出
:w:保存但是不退出
:wq:保存并退出
:e filename :打开文件filename 进行编辑
:n1,n2 d:将n1行到n2行之间的内容(包含第n1,n2行)删除(如果只有n1则只删除n1)
:n1,n2 m n3:将n1行到n2行之间的内容(包含第n1,n2行)移动到第n3行下(移动相当于剪切)
:n1,n2 co n3:将n1行到n2行之间的内容(包含第n1,n2行)拷贝到第n3行下(拷贝也就是复制)
:e! 放弃当前的所有修改,重新打开这个文件
vi_删除全部文本
:1,$d 
:.,$d 这个需要光标在第一行才可以


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/159.html