Linux中的Vi编辑操作
------本文的内容是介绍Linux中的Vi编辑相关的一些操作
1、Vi的2模式
Command(命令)模式,用于输入命令
Insert(插入)模式,用于插入文本
2、当我们按ESC进入Command模式后,可以使用下面的一些键位来移动光标
j 向下移动一行
k 向上移动一行
h 向左移动一个字符
l 向右移动一个字符
在编辑一个文件时,对于j、k、l和h键,还能在这些动作命令的前面加上数字,比如3j,表示向下移动3行。
^ 将光标移动到行首
$ 将光标移动到行尾
3、插入模式(文本的插入)
i 在光标之前插入
a 在光标之后插入
I 在光标所在行的行首插入
A 在光标所在行的行末插入
o 在光标所在行的下面插入一行
O 在光标所在行的上面插入一行
4、文本内容的删除操作
x 删除一个字符
#x 删除几个自如,#表示数字,比如 3x
dd 删除一行
#dd 删除多个行,#代表数字,比如3dd表示删除光标行及光标的下两行
d$ 删除光标到行尾的内容
J 清除光标所处的行与下一行之间的换行,行尾没有空格的话会自动添加1个空格
#J 表示合并#(数字)行
5、退出保存
在命令模式下按 shift+:会在文本底端出现冒号
:w 保存
:w filename 另存为filename
:wq! 保存并退出
:q! 不保存退出
:x 保存并退出,功能和 :wq!相同
6、撤销操作
u命令取消最近一次的操作,可以使用多次来恢复原有的操作。
7、复制操作
yy 复制当前整行的内容到 vi缓存区,#yy ,如5yy就是复制5行
yw 复制当前光标所在位置到单词尾字符的内容到 vi缓存区,相当于复制一个单词
y$ 复制当前光标所在位置到行尾内容到缓存区
y^ 复制当前光标所在位置到行首内容到缓存区
如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny,例如3,5y复制第3行到第5行内容到缓存区。
8、查找和替换
Vi 的查找和替换功能主要在末行模式完成,分别是“至上而下的查找”和“至下而上的查找”。
8.1 至上而下的查找
/要查找的字符串,其中/代表从光标所在位置起开始查找,例如,/work
n 查找下一个匹配的字符串
N 反向查找下一个匹配的字符串
8.2至下而上的查找
?要查找的字符串,其中?代表从光标所在位置起开始查找,例如,?work
8.3 替换
:s/old/new 用new替换行中首次出现的old
:s/old/new/g 用new替换行中所有出现的old
:#,#s/old/new/g 用new替换从第#行到第#行中出现的old
:%s/old/new/g 用new替换整篇中出现的old
如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如,s/old/new/c或 s/old/new/gc
9、恢复文件
Vi在编辑某一个文件时,会生成一个临时文件,这个临时文件以.swp结尾。正常退出时,该文件会被自动删除;但如果是意外退出,例如突然断电,该文件不会被删除,在下一次编辑时可以选择以下命令处理:
O 只读打开,不改变文件内容
E 继续编辑文件,不恢复.swp文件保存的内容
R 将恢复上次编辑以后未保存文件内容
Q 退出vi
D 删除.swp文件