linux下vi的使用
在Linux下太多的命令都默认使用vi作为数据编辑的接口,所以必须要学会使用vi下的基本命令~
vi一般有三种模式:一般模式、编辑模式、命令行模式
模式切换
- 1、使用vi进入一般模式
- 2、按下i,进入编辑模式
- 3、按下[ESC]回到一般模式
- 4、在一般模式下输入“:wq”保存后离开vi
按键说明
一)一般模式下按钮说明:光标移动,复制粘贴,查找替换
移动光标的方法
1、屏幕向下移动一页
ctrl+f或者键盘右下角“PgDn”
2、屏幕向上移动一页
ctrl+b或者键盘右下角“PgUp”
3、当前行的光标移动到最前面字符处
0
4、当前行的光标移动到最后面字符处
$
5、移动到文件末尾(最后一行)
G(即:shift+g)
6、移动到文件的第一行
gg(也可以1G)
7、光标向下移动n行,n为数字,例如2+回车键:向下移动2行
n[ENTER]
8、复原上一个操作
u 例如:eg:使用命令dd删除了一行‘123’,这时可能是误操作,那么恢复操作,就使用u,被删除的一行‘123’就又出现了
9、重复执行上一个操作
ctrl+r 然后点击‘.’
查找与替换
1、向下寻找"/"
/word--向下寻找word
2、向上寻找“?”
?word
--->n:重复前一个查找动作,例如/word,然后n,则表示向下查找下一个word
--->N:反向进行前一个查找动作,例如/word,然后按N,则表示向上查找下一个
3、在第n1与n2行之前寻找word1字符串并替换为word2(n1,n2为数字)
:n1,n2s/word1/word2/g
eg:100到200行之间查找hell并替换为HELLO--->:100,200s/hello/HELLO/g
4、第一行到最后一行之间查找并替换
:1,$s/word1/word2/g
5、在替换前显示提示字符给用户进行确认confirm
:1,$s/word1/word2/gc
删除、复制与粘贴
1、x为向后删除一个,光标在当前字符上就删除当前字符(相当于del),X为向前删除一个字符(相当于backspace)
2、删除光标所在的那一行
dd
3、删除包含光标所在行的向下的n行
ndd eg:3dd,删除包含光标所在行共3行,也就是光标行和以下2行
4、删除光标所在行到第一行的数据(包含光标所在行)
d1G
5、删除光标所在行到最后一行的数据(包含光标所在行)
dG
6、删除光标所在处到这一行的最后一个字符(包含光标所在字符)
d$
7、删除光标所在处到这一行的第一个字符(包含光标所在字符)
d0
8、复制光标所在的那一行
yy--->复制一行,输入yy然后p,在下一行粘贴
9、复制包含光标所在行在内的n行
nyy 然后点击p
p,-->表示将已复制的数据在光标下一行粘贴
P,-->表示将已复制的数据在光标上一行粘贴
二)一般模式切换到编辑模式
* 1、i,I 进入编辑模式
i为从目前光标处插入,I:光标所在行的第一个非空格字符处插入(一般是行首)
* 2、a,A 进入编辑模式
a为目前字符的下一个字符开始插入,A为光标行的最后一个字符处开始插入
* 3、o,O 进入编辑模式
o目前光标所在下一行输入,O,表示在目前光标所在处上一行输入
* 4、r,R 进入替换模式
r替换光标所在的字符一次,R会一直替换光标所在的字符,知道按下ESC键退出
* 5、【ESC】
退出编辑模式
三)一般模式切换到命令行模式
* 1、将编辑的输入写入到硬盘文件
:w
* 2、若文件为只读时,强制写入该文件
:w!
* 3、不保存退出
:q
* 4、强制离开不保存
:q!
* 5、保存离开
:wq :wq!强制保存离开
* 6、显示行号
:set nu
* 7、不显示行号
:set nonu