vi(visual editor)是UNIX操作系统的默认编辑器。
vi有两种模式:
- 命令行模式。输入字符会对文件执行某些操作。
- 插入模式。字符会插入到文件内容中。
注意:
- vi是大小写敏感的。
:
开始的命令,输入结束后需要点击回车
进入或退出vi
进入
vi 文件名
编辑文件
离开
:x
保存修改并退出vi,和:wq
效果等价
:q!
不保存修改并退出vi
光标操作
无上下左右箭头的键盘,左上下右箭头对应字母
h
j
k
l
移动到当前行的开始 0
移动到当前行的末尾 $
移动到文件第一行::0
或者1G
移动到文件最后一行::$
或者G
移动到第n行::n
或者nG
屏幕操作
Ctrl + F
向下滚动一屏
Ctrl + B
向上滚动一屏
Ctrl + D
向下滚动半屏
Ctrl + U
向上滚动半屏
Ctrl + L
刷新屏幕
Ctrl + R
刷新屏幕,移除被删除的行
文本操作
u
撤销操作
插入文本
i
当前光标前插入文本
o
当前行的后面新起一行插入文本
O
当前行的前面新起一行插入文本
替换文本
r
替换光标后的单个字符,按完r
后直接按想要替换的字符即可
R
替换光标开始的字符串,按完R
后输入目标字符串,输入结束后按Esc
结束
删除文本
dd
删除当前行
Ndd
删除当前行开始的N行
剪切粘贴
yy
拷贝当前行
Nyy
拷贝当前行开始的N行
p
粘贴
其他命令
文本查找
非编辑模式下,输入/pattern
向前查找匹配的pattern
- 按
n
匹配下一个 - 按
N
或者Shift+n
匹配上一个
注意:如果按n
没有执行匹配下一个,检查一下是不是输入pattern后没有按回车键
批量替换
非编辑模式下:%s/source/dest/g
最后的字母g表示全局查找替换所有匹配项,没有g只替换第一个
编辑两个文件
vi -O file1 file2
纵向分屏打开两个文件
Ctrl + w + w
在两个窗口间切换
:qa
不保存全部退出
:xa
保存修改然后全部退出