linux常用命令之二---vi的使用

vi有三种模式,一般模式,编辑模式和命令行模式,一般模式下可以进行查找、替换、复制、粘贴、删除等操作,编辑模式下可以编辑文件内容,命令行模式下可以进行保存、退出、显示行号等操作。命令行模式和编辑模式之间不能切换,除此之外,任意两种模式之间可以相互切换。
在这里插入图片描述

1 一般模式下:

1.1 光标移动

h或←:向左移动一个字符
j或↓:向下移动一个字符
k或↑:向上移动一个字符
l或→:向左移动一个字符
(推荐使用h j k l,而不是方向键,因为字母键用起来手指移动幅度更小,速度更快,如果想要向某个方向移动n个字符,只需要在相应的字母前加入数字n,如5h即为向左移动5个字符)
ctrl+f:向下翻页
ctrl+b:向上翻页
G:移动到文件最后一行
nG:移动到第n行
gg:移动到文件的第一行
H:移动到当前屏幕第一行
L:移动到当前屏幕最后一行
0:移动到当前行第一个字符
$:移动到当前行最后一个字符
n+enter:光标向下移动n行,且光标会位于所在行的第一个字符处

1.2 查找与替换

/text:向下查找text
?text:向上查找text
输入查找命令后,按“n”(n表示键盘上的n键,不是指数字),表示继续查找,按“N”表示继续反向查找
:n1,n2s/text1/text2/g:查找n1行与n2行之间的text1字符串并将其替换为text2
:n1,n2s/text1/text2/gc:同上,只是在替换时会要求用户确认是否进行替换
(如果是全文替换,则n1=1,n2=$)

1.3 复制、粘贴、删除
1.3.1 复制与粘贴

在复制的操作中,在光标移动那一节中,我们知道G表示文件最后一行,1G表示文件第一行,0表示当前行的行首,$表示当前行的行末,因为有了下面的操作
y1G:复制当前行到第一行的数据
yG:复制当前行到最后一行的数据
y0:复制当前光标所在处到该行第一个字符的数据
y$:复制当前光标所在处到该行最后一个字符的数据
yy:复制整行的数据
nyy:复制向下n行的数据
y表示copy
(复制光标所在处向后n个字符的数据如何操作??)
p(paste):将已复制的数据在光标后粘贴
P:将已复制的数据在光标前粘贴

1.3.2 删除

x:向后删除一个字符
X:向前删除一个字符
nx/nX:向前或向后删除n个字符
dd:删除整行
ndd:向下删除n行
d0:删除光标所在处到该行行首的所有数据(0表示行首)
d$:删除光标所在处到该行行末的所有数据($表示行末)
d1G:删除当前行到文件一行的第一行的所有数据
dG:删除当前行到文件最后一行的数据
(最后几个命令其实不用记,和复制同样道理,0表示行首,$表示行末,1G表示文件第一行,G表示文件最后一行,同样可以猜想,要是想删除当前行到第n行的数据,则是dnG)

1.4 其他

u:撤销上一个动作,相当于ctrl+z
ctrl+r:重做上一个动作
另外小数点"."表示重复上一个动作,比如重复删除,粘贴等

2.编辑模式

一般模式下输入以下字符可以进入编辑模式
i或I:i表示从当前光标处插入,I表示从该行第一个字符处插入
a或A:a表示从光标所在处的下一个字符开始插入,A表示从该行最后一个字符处开始插入
o或O:o表示从光标所在处下一行插入新的一行,O表示从光标所在处上一行插入新的一行
以上三种都会进入插入模式,在vi界面的左下角会出现----INSERT----字样
r或R:r表示替换光标所在处的字符一次,R则会一直处于替换模式,输入R后,vi界面左下角会出现—REPLACE—字样(相当于window下的INSERT键)

3.命令行模式

:w:将修改进行保存
:q:推出vi
:q!:不保存当前的修改,强制退出
:wq:保存退出
:w[text_name]:另存为一个名为text_name的文件,注意实际输入的时候没有方括号
:set nu:显示行号
:set nonu:取消显示行号

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值