Vim 环视和固化分组

作者: SpaceVim | 来源:发表于2018-08-15 15:45 被阅读88次
vim Perl 意义
\@= (?= 顺序环视
\@! (?! 顺序否定环视
\@<= (?<= 逆序环视
\@<! (?<! 逆序否定环视
\@> (?> 固化分组
\%(atom\) (?: 非捕获型括号

和 perl 稍有不同的是,vim 中的环视和固化分组的模式的位置与 perl 不同。 例如,查找紧跟在 foo 之后的 bar,perl 将模式写在环视的括号内, 而 vim 将模式写在环视的元字符之前。
Perl的写法

/(?<=foo)bar/

vim的写法

/\(foo\)\@<=bar

Vim 使用示例

  • 顺序环视
    查找后面是sql的my: /my\(sql\)\@=
  • 顺序否定环视
    查找后面不是sql的my:/my\(sql\)\@!
  • 逆序环视
    查找前面是my的sql: /\(my\)\@<=sql
  • 逆序否定环视
    查找前面不是my的sql: /\(my\)\@<!sql
  • 固化分组
  • 非捕获型括号
    意思是,此分组不捕获,可以理解为不算在分组信息中
:%s/\%(my\)sql\(ok\)/\1

上面的命令会将 mysqlok 替换为 ok ,由于 my 为捕获在分组中,故组中 \1ok

欢迎加入我们的 QQ 群,与 vimer 一起交流更多的 vim 使用技巧: 755208473

相关文章

  • Vim 环视和固化分组

    和 perl 稍有不同的是,vim 中的环视和固化分组的模式的位置与 perl 不同。 例如,查找紧跟在 foo ...

  • 常用正则表达式

    基本的规则 [exp] 匹配中括号里的内容 (exp)捕获分组 (?:exp)非捕获分组 环视功能 (?=exp)...

  • Vim分组替换

    需求 如下是原文本: 希望修改成: Vim实现 通过在Vim替换时使用分组即可搞定,第0组代表全部文本,第1组代表...

  • UV固化灯的散热解决方案

    UV固化灯主要由反射灯罩、UV触发器、UV镇流器和灯管四大部分组成,简单的结构形式,便捷的使用方式,高效的固化性能...

  • python正则表达式详解

    #首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用法 环视用法...

  • 正则()[]{}|?:用法

    圆括号()是组,主要应用在限制多选结构的范围/分组/捕获文本/环视/特殊模式处理方括号是单个匹配 字符集/排除字符...

  • JavaScript 正则表达式(3)

    在JavaScript正则表达式(2)中,我们一起学习了正则表达式的入门进阶功能,比如反向引用,分组匹配,环视,一...

  • FFmpeg实践记录三:Vim基本讲解

    Vim处理模式 Vim常用命令 Vim拷贝、粘贴和删除 Vim光标移动 Vim行内光标移动 Vim查找与替换 Vi...

  • spf13-vim常用快捷键

    spf13-vim介绍和下载 spf13-vim - The Ultimate Vim Distributionh...

  • linux基础(四)-vim编辑器的使用

    vim编辑器的使用 进入输入模式 vim撤销和撤销撤销 vim保存和退出 vim的配置文件: 窗口属性的定义 vi...

网友评论

    本文标题:Vim 环视和固化分组

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