共计 1250 个字符,预计需要花费 4 分钟才能阅读完成。
查找细节
回顾上节课内容🤔
咱们复习了对于搜寻的相干内容
- /正向,?反向
- n放弃方向,N改变方向
能够设置
- 是否疏忽大写小写
- 是否从头开始查找
- 是否高亮显示
还有一些正则表达式的应用办法
- 行头行尾
^$
- 词头词尾
\<\>
- 字符列表
[a-z]
、[A-Za-z_]
- 蕴含回车
one\_stwo
- 行头行尾
数量
- 数量
*
、?
、=
- 具体数量
\{1,3}
- 非贪心
\{-}
- 数量
不以什么为结尾结尾
- 不以什么为结尾
\@<!
- 不以什么为结尾
\@!
- 不以什么为结尾
- 查找进去怎么替换呢?🤔
查找手册📕
:h :s
:s
命令 对应的是substitude
替换- 咱们先做个试验环境
:r !ls -lah
具体操作
- 3G 跳转到第三行
:s/shiyanlou/oeasy
- 把以后行的
shiyanlou
换成oeasy
- 把以后行的
我想在同一行外面再换下一个
- 就能够:⬆️
- 找到上一条命令
- 而后再回车执行
- 我想把下一行的
2
个oeasy
一把都换掉 - 这就要加
flag
增加flag
- 哪个
flag
呢? - 咱们能够在
:h :s
的时候,应用/flag
- 也能够
:h s_flags
咱们这次的 flag 是
g
- 换一行
:s/shiyanlou/oeasy/g
- 能够把这一行所有的
shiyanlou
换成oeasy
- 我了解这个 g 指的是行内所有的
- 如果我想默认 g -flag 就开着呢?
默认 g -flag
如果
:se gdefault
- 能够设置
g
为默认
- 能够设置
- 然而这个只能替换一行
- 我想在某些行的范畴内替换怎么办呢?
- 加
range
增加range
精准管制
:3,8s/shiyanlou/oeasy/g
- 只替换 3 - 8 行的
- 而且开了
g
flag - 3,8 行
- 每行的都全副替换
全副替换
%
相当于1,$
:%s/shiyanlou/oeasy/g
:1,$s/shiyanlou/oeasy/g
- 就会把所有的都替换了
- 然而这个一把都替换了
- 有的时候我还是想具体一个个确认怎么办?
一一确认
:h s_flags
找到一个c
c
的意思是confirm
确认
:%s/shiyanlou/oeasy/gc
- 行里的都替换
- 每一个都须要确认
每个一一确认
- y替换以后匹配
- l替换以后匹配,并退出
- n跳过以后匹配
- esc间接退出
- q间接退出
- a全副替换
- 领会一下
a
的高兴😛
小技巧
/let
- 搜寻 let
cwconst
esc- 把以后单词变成 const
跳
- n跳过以后匹配
- n再跳过以后匹配
- n还跳过以后匹配
- N往回跳
重做
.
- 须要替换的就替换
n
- 须要跳过的就跳过
N
- 跳错了就跳回来
总结
咱们学习了
- 替换
substitude
- 替换
替换单行
:s/shiyanlou/oeasy
加上
range
:3,5s/shiyanlou/oeasy
:%s/shiyanlou/oeasy
加上
flag
:3,5s/shiyanlou/oeasy/g
多个替换:3,5s/shiyanlou/oeasy/gc
多个替换且一一确认
- 替换还是很不便的
- 然而我想替换中应用正则表达式
- 能够么?🤔
- 下次再说 👋
[Github 地址] (https://github.com/overmind19…)
[Gitee 地址] (https://gitee.com/overmind198…)
[蓝桥实验楼 邀请码 FJWYIMGB] (https://www.lanqiao.cn/course…)
正文完