Vi命令详解

[size=large][b]启动Vi[/b][/size]
vi 不指定文件名,在保存文件时需要指定文件名
vi filename 该文件可以是已存在的文件也可以是新建的
vi +n filename 进入vi,光标停在第n行开始处
vi + filename 进入vi,光标停在文件最后一行开始处
vi +/ 字符串 文件名 进入vi,光标停在第一个字符串处


[size=large][b]保存文件和退出[/b][/size]
在命令模式下,输入两次<Z>,将保存文件并退出vi
在命令模式下,输入:x,将保存文件并退出vi
:w 保存文件内容
:x 文件名 将当前文件的内容保存由“文件名”指定的文件中,若文件存在则产生错误,不退出vi
:w! 文件名 将当前文件的内容保存由“文件名”指定的文件中,若文件存在则覆盖原有文件
:q 退出vi,若文件有改动未保存,则产生错误,不退出vi
:q! 强行退出vi,若有修改未保存,则不保存
:wq 退出并保存文件
:wq! 强行保存退出
:set nu/:set number 显示行号
:set nonu/:set nonumber 取消行号的显示


[b][size=large]光标移动 [/size][/b]
方向键下 移动到下一行,列不变
方向键上 移动到上一行,列不变
方向键左 移动到前一列,行不变
方向键右 移动到后一列,行不变
0 移动到当前行的行首
$ 移动到当前行的行尾
nw 右移n个字,n为数字,光标处于第n个字的字首,w上forword中的w
w 右移一个字,光标处于下一个字的字首
nb 左移n个字,n为数字,光标处于第n个字的字首,b上back中的w
b 左移一个字,光标处于下一个字的字首
( 移动到本句的句首,若已经处于本句的句首,则移动前一句的句首
) 移动到下一句的句首
{ 移动到本段的段首,若已经处于本段的段首,则移动前一段的段首
} 移动到下一段的段首
1G 移动到文件首行的句首
G 移动到文件末行的行首
nG 移动到文件第n行的行首
<ctrl>+g 报告光标所处的位置,位置信息显示在vi的最后一行
遇到"."、"?"或"!",vi认为是一句的结束,vi以空白行来作为段的开始和结束


[size=large][b]文本的删除[/b][/size]
x 删除光标所在的位置的一个字符
nx 删除光标开始的n个字符
dw 删除光标所在位置的一个字,d是delete的首字母
ndw 删除光标开始的n个字
db 删除光标前的一个字
ndb 删除光标前的n个字
d0 删除光标到行首所有字符
d$ 删除光标到行尾所有字符
dd 删除当前行
ndd 删除当前行开始的n行
d( 删除光标到句首所有字符
d) 删除光标到句尾所有字符
d{ 删除光标到段首所有字符
d} 删除光标到段尾所有字符
若要取消前一次操作,可以按u,u是undo的首字母


[size=large][b]文本查找和替换[/b][/size]
?string<Enter> 在命令模式与输入?和要查找的字符串"string"并回车即可
n 向文件头方向重复前一个查找命令
N 向文件尾方向重复前一个查找命令
:s/oldstr/newstr 在当前行用newstr替换oldstr,只替换一次,s是substitue的首字母
:s/oldstr/newstr/g 在当前行用newstr替换所有的oldstr
:1,10s/oldstr/newstr/g 在1-10行用newstr替换所有的oldstr
:1,$s/oldstr/newstr/g 在整个文件中用newstr替换所有的oldstr


[size=large][b]文本的复制和粘贴[/b][/size]
yw 将光标所在位置到字尾的字符复制到缓冲区中,y是yank的首字母
nyw 将光标所在位置到n个字尾的字符复制到缓冲区中,y是yank的首字母
yb 从光标开始向左复制一个字
nyb 从光标开始向左复制n个字
y0 从光标开始复制到行首
y$ 从光标开始复制到行尾
yy 复制当前行
nyy 复制当前行开始n行
p 在光标所在位置后粘贴复的内容
P 在光标所在位置前粘贴复的内容
np 在光标所在位置后粘贴复的内容,粘贴n次
nP 在光标所在位置前粘贴复的内容,粘贴n次
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值