本文参考自:韦东山老师嵌入式Linux应用开发完全手册
欢迎关注我的微信公众号【万能的小江江】
vi编辑器的功能
vi是一个命令,也是命令行下的一个编辑器,它有如下功能:
- 打开、新建、保存文件
- 移动光标
- 文本编辑
- 多行/列间复制、粘贴、删除
- 查找和替换
vi编辑器的模式
vi编辑器有三种模式,各模式侧重点不同:
- 一般模式(光标移动、复制、粘贴、删除)
- 编辑模式(编辑文本的模式)
- 命令行模式(用于查找和替换)
注:
- 如果不知道当前处于何种模式,按ESC键可以返回一般模式
- wq(write quit)
- i(insert)
文件的打开、新建、保存
打开文件、新建文件
vi 文件名
修改结束后
输入:
进入命令行模式,输入wq
保存并退出
:wq #保存并退出文件
x #一样的效果
注:
- 如果文件不存在,也需要输入
:wq
才可以保存新文件,否则不会新建文件
编辑完成后,返回一般模式的方法
1.输入:w
保存文件,如已经保存,输入:q
强制退出
2.直接输入:wq
保存并退出
3.如果不想保存编辑的文件,输入:q!
强制退出
编辑文件
打开文件后,默认处于“一般模式”,可以用下列指令操作:
快速移动光标
操作示例
快速定位到某行的:文件头、文件尾、指定行
ngg #光标移到第n行的行首(n是数字,想要跳转的行)
1gg #跳到第1行行首
2gg #跳到第2行行首
G #转到文件的结尾
在某行中,快速定位到某一列
0 #(数字0)光标移动至当前行行首
$ #光标移至行末
fx #搜索当前行中下一个出现字母x的地方
注:
如果不知道vi编辑器当前处于何种模式,可以按ESC键返回到一般模式
文本复制、粘贴、删除、撤销
复制
yy #复制当前行(y:yank(复制))
nyy #复制当前行及其后的n-1行(n是数字)
粘贴
p #粘贴(p:paste)
删除
dd #删除当前光标所在行(d:delete)
ndd #删除当前光标所在行及其后的n-1行(n是数字)
x #删除光标所在位置的字符
撤销
u #撤销上一步操作
文本查找和替换
查找
/pattern #从光标开始的地方向文件尾搜索pattern,后按下n或N
注:
n #在同一个方向重复上次的搜索命令
N #在反方向重复上次的搜索命令
在/pattern之前,先跳到第一行,就是对全文件进行搜索
替换
:%s/p1/p2/g #将文件中所有的p1都用p2替换
:%s/p1/p2/gc #替换时需要确认
“s”:substitute 替换
“g”:global 全局
“c”:confirm 确认