美文网首页
替换字符串

替换字符串

作者: sweetBoy_9126 | 来源:发表于2022-08-16 21:01 被阅读0次

替换命令

:substitute

公式

:[rang]s/{pattern}/{string}/[flags]
[] 里的内容是可选的

基础用法

替换当前行里的指定字符串

vnode

比如我们想将当前行的 vnode 替换成 haha,可以使用
:s/vnode/haha
注意我们需要按回车确认更改,否则当我们再次切回 normal 模式后还是会回到修改前的字符串

而且当我们使用替换命令的时候编辑器下方会出现对应的替换命令

rang

范围

  • 到尾部 从指定行到尾部,搭配 number, 使用
    :10,$s/vnode/hhh 替换第十行到最后一行的 vnode 为 hhh
  • % 全文
    使用全文范围替换
vnode

vnode vnode
vnode

比如:我们想替换当前文件下所有的 vnode 就可以使用 %
命令如下:
:%s/vnode/hhh
上面的内容就会变成

hhh

hhh vnode
hhh
  • number, number 第几行到第几行
    :10,12s/vnode/hhh 替换第10-12行的 vnode 为 hhh

注意:默认情况下所有的范围匹配的都是满足条件行里的第一个匹配的字符串,如果当前行有多个满足条件的字符串,那么除第一个外都不会匹配
比如:

vnode vnode

只会将第一个vnode变成 hhh
如果你想把所有满足条件的字符串都匹配的话就需要使用 flag 里的 g

pattern

模式
匹配要替换的字符串,可以是正则表达式
比如:

h1aha
h2aha

我们想将上面的两行统一替换为 hhh,这时我们就需要用正则匹配1和2
:%s/h[1,2]aha/hhh

string

要替换成的字符串

flag

  • g
    匹配满足条件所有字符串
    比如:
vnode
vnode vnode

使用命令 :%s/vnode/hhh/g
就会变成

hhh
hhh hhh
  • c
    弹出对话框提示来进一步确认我们要替换的项,确认后无需再按回车
    比如:
    :%s/vnode/hhh/gc 执行后如下

会有五个选项
y: 替换当前光标高亮的那个字符串
n: 当前光标高亮的这个不替换
a: 把所有匹配的都替换
q: 退出
l: 把当前光标高亮的这个替换然后退出

  • g 和 c 可以同时使用

可视化模式下

无需使用范围
当我们使用可视化模式选中一个区域后再按冒号,它会自动帮我们生成一个'<,'>的范围,也就是我们选中的区域的开始和结尾

比如:
:s/vnode/hhh
就会自动变成
:'<,'>s/vnode/hhh

查看更多替换命令

打开终端
在终端里输入 vim
然后 输入 :help s_flags 回车

多选操作

  • gb
    使用 gb 选中一个字符串,然后再按一次 gb 匹配相同字符串
    使用场景:对同一字符串进行批量修改
test
test

gb gb c hhh
将两个 test 改为 hhh

相关文章

  • Android中string.xml应用

    配置字符串替换 单个字符串替换 使用Context方法,动态替换 多个个字符串替换 配置字符串中的空格

  • js替换字符串

    1、替换第一个字符串: 2、替换所有字符串 3、替换所有key的字符串

  • 实现模板引擎

    字符串替换 Template(模板) 目录 字符串拼接 string format(字符串格式化) 模板替换 自制...

  • linux-对文件某个字符串替换,批量替换

    全部替换:sed -i 's/查找的字符串/替换的字符串/g' 文件 替换每行第一次出现的字符串:sed -i '...

  • Vim常用配置

    替换 语法为 :[addr]s/源字符串/目的字符串/[option]全局替换命令为::%s/源字符串/目的字符串...

  • sed

    1、替换1.1 sed 's/原字符串/替换字符串/'单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需...

  • sed中转义字符的替换

    sed中转义字符的替换 背景 在使用sed的时候,经常我们会用来替换字符串,如果被替换的字符串中包含转移字符串怎么...

  • Vi用法

    替换 语法为:[range]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符...

  • 利用replace方法实现从右到左替换字符串

    replace方法原型 old -- 将被替换的子字符串。new -- 新字符串,用于替换old子字符串。max...

  • 扩展python3的replace()方法:去掉字符串中的指定字

    传参说明 myString:原字符串oldSubStr:要替换的子字符串newSubStr:替换后的子字符串cou...

网友评论

      本文标题:替换字符串

      本文链接:https://www.haomeiwen.com/subject/gqrdgrtx.html