命令模式&文本模式
命令模式就输入命令然后执行,文本模式就是系统把你的输入都当成写进文件里的字符
切换模式:
刚进入默认是命令模式,按:
i I a A o O
进入文本模式,
通过他们进入文本模式有什么不同?
然后按esc进入命令模式
命令模式:
退出:(命令模式基本就是用来保存退出,没有别的特殊的命令)
wq #write and quit
q #quit,如果你对文件有修改,那么你q的时候会不让你q,你必须wq或者q!
q! #强制quit
光标移动(命令模式下):
hjkl,方向键左下上右
文本修改:
搜索字符串:
替换
不加g,就只替换每一行的匹配的第一个
文件恢复
swp文件,当打开vi时创建,关闭vi时删除,
如果出现异常情况,vi未正常关闭,则swp不被删除,
则下次再通过vi打开filea时,vi检测到swp,询问用户是否要恢复
vi操作符的域:
删除操作符和域:
文本模式:
没什么好说的
缓冲区:
一次编辑多个文件:
vi file1 file2 ...... fileN
我这里有两个文件:
一次编辑这两个文件:
进入vi以后,首先编辑第一个文件:
编辑完了以后,切换到下一个文件,有两种命令:
n
e file2
这两种命令,都要求你已经对修改的第一个文件进行保存,如果没有保存,是不能切换的,no write since last change
可以先w一下,保存修改,
如果要放弃修改,可以
n!
e! file2
强制切换
查看当前正在编辑的文件
ar
中括号里就是当前正在编辑的文件
插入其他文件内容
r file1即可将file1中的内容插入到当前编辑的文件中
将文件部分写入其他文件
1,2 w file3
将当前正在编辑的文件的第1行到第2行,写入叫file3的文件中,如果file3不存在于当前目录,那么创建一个新文件,如果已经存在
那么必须
1,2 w! file3 强制覆盖
linux中的缓冲区,等同于windows系统中的剪贴板
d+p相当于剪切
y+p相当于复制
寄存器:
显示所有寄存器内容:regs(vi中)
vi中执行shell命令
可以就这样在vi的命令模式中输入!后跟一条指令,
然后系统会进入这样的等待状态:
按回车即可返回到vi编辑状态
可以把命令执行结果写入到文件中
r ! command