赵老师笔记----vi的简单使用方法
vi具有“编辑器之神”的美誉
一、vi的三种工作模式:
1、命令模式:执行相关文本编辑命令
2、输入模式(插入模式):输入文本
3、底行模式:实现查找、替换、保存、多文件操作等等功能
命令模式——————i,o,a————》插入模式
插入模式——————esc——————》命令模式
命令模式——————shift+:———》底行模式
底行模式——————backspace或者del或esc———》命令模式
打开新文件时,默认进入插入模式
打开旧文件时,默认进入命令模式
二、进入vi,直接在Shell提示符下键入vi [文件名称],如果该文件在当前目录不存在,则vi创建之。
三、退出vi
1、在底行模式下输入“:wq”,保存文件并退出vi
2、若不需要保存文件,输入“:q”
3、若文件已修改,但不保存,输入“:q!”强制退出vi
4、其它一些不常用的方法在此省略。
四、常用编辑命令
1、启动vi后,进入的是vi的命令模式
2、按i键,进入插入模式,可以进行文本的编辑,在插入模式下,按esc键,可切换回命令模式
i:光标位置不变,可在光标左侧插入正文
a:光标位置向后退一格,可在光标左侧插入正文
o:在光标所在行的下一行增添新行
O:在光标所在行的上一行增添新行
I:光标跳到当前行的开头
A:光标跳到当前行的末尾
3、光标的移动
k、j、h、l分别等同于上、下、左、右箭头键
Ctrl+b,向上翻一页
Ctrl+f,向下翻一页
nH,将光标移到屏幕的第n行
nL,将光标移到屏幕的倒数第n行
4、删除文本
x,X删除光标后一个字符
nX,删除光标所指向的后n个字符
D,删除光标右侧的所有字符(包括光标所指向的字符)
db,删除光标左侧的全部字符
dd 删除当前行
ndd,删除当前行和当前行以后的n行内容
5、粘贴和复制
p,将缓冲区的内容粘贴到当前字符的右侧
P,将缓冲区的内容粘贴到当前字符的左侧
yy,复制当前行到内存缓冲区
nyy,复制n行内容到内存缓冲区
6、搜索字符串
/str1,正向搜索字符串str1
n,继续搜索
?str2,反向搜索字符串str2
7、撤销和重复
u,撤销前一条命令的执行结果
.,重复最后一条命令
8、光标快速移动
[n]G:将光标定位到第n行开始处
G: 将光标定位到文件结束处
gg:将光标定位到文件开始处
五、底行模式下的命令
:n,将光标移动到第n行
:nw file,将第n行写入file文件
:n,mw file,将第n行至第m行写入file文件
:w,将编辑的内容写入原始文件
:wq,将编辑的内容写入原始文件并退出编辑程序
:w file,将编辑的内容写入file文件,保持原有文件的内容不变
:f file,将当前文件重命名为file
:e file,编辑新文件file代替原有内容
:f,打印当前文件的状态,如文件的行数,光标所在的行号等
:!<命令>,执行相应shell命令
:set number 或者 :set nu 设置显示行号
:set nonu 设置不显示行号
配合搜索命令使用:
:nohls 取消高亮
:set hls 设置高亮
六、快捷键
\p< 插入#include <>
\p" 插入#include ""
\im 插入main主体部分
\ip 插入printf函数
七、三种工作模式的切换
1、在Linux shell下,键入vi或vi <新文件名>进入插入模式
2、在命令模式下,键入shift+:进入底行模式
3、在命令模式下,键入如i,a,o等进入文本插入模式
4、在文本插入模式下,按esc键进入命令模式
5、在底行模式下,按backspace键或del键进入命令模式
6、在底行模式下,键入q或wq,退出vi,返回到Linux shell下
课后练习
1.请在 /tmp目录下建立一个名为vitest的目录。
2.进入vitest目录中。
3.将 /etc/manpath.config复制到本目录中。
4.使用vi打开本目录下的manpath.config文件
5.在vi中设置行号。
6.移动到第64行,向右移动4个字符,请问您星号内是什么?
7.移动到第一行,并且向下搜索“X11R6”字符串,请问它在第几行?
8.将50~100行之间的man改为MAN,并且一个一个挑选是否需要修改,如何执行命令?
9.修改完之后,突然反悔了,要全部复原,有哪些方法?
10.要复制51~60行的内容,并且贴到最后一行之后。
11.删除11~30行之间的20行。
12.将这个文件另存成一个man.test.config文件。
13.到第29行,并且删除15个字符。
14.存储后离开