美文网首页
Vim 奇偶替换特征行

Vim 奇偶替换特征行

作者: 千羽之城88 | 来源:发表于2020-11-03 23:33 被阅读0次

根据出现的次序智能地替换 Emacs 方案

例如,有一段如下的HTML代码:

<ul>
  <li>first</li>
  <li>second</li>
  <li>third</li>
</ul>
<ul>
  <li>first</li>
  <li>second</li>
</ul>
<ul>
  <li>first</li>
  <li>second</li>
  <li>third</li>
</ul>

我希望把<li>按照出现在的次序,第奇数行添加class="odd",第偶数行添加class="event";并且每个<ul>要独立设置,即每个<ul>的第一个<li>永远是<li class="odd">。

像这种看起来很相似,规则又不是非常通用的替换规则,在遇到Emacs之前,我还真不知道有什么简单的方法。来看看Emacs的解决方法,匹配如下正则表达式,其中换行符用C-q C-j输入

\(\(<ul>[
 ]*\)?<li\)

最终输出如下:

<ul>
  <li class="odd">first</li>
  <li class="event">second</li>
  <li class="odd">third</li>
</ul>
<ul>
  <li class="odd">first</li>
  <li class="event">second</li>
</ul>
<ul>
  <li class="odd">first</li>
  <li class="event">second</li>
  <li class="odd">third</li>
</ul>

vim 的方案

g/./if(getline(".")=="<ul>") | let i=0 | let idx=1 | elseif( (i+idx)%2 == 0 ) | s/<li/& class=\"odd\"/ | else | s/<li/& class=\"even\"/ | endif | let idx+=1

链接:https://www.zhihu.com/question/30898636/answer/53340291

相关文章

  • Vim 奇偶替换特征行

    根据出现的次序智能地替换 Emacs 方案 例如,有一段如下的HTML代码: 我希望把 按照出现在的次序,第奇数行...

  • Vim安装与配置

    检测已经安装的vim 安装vim 用vim 替换 vi 设置行号与缩进 设置光标和行高亮

  • 2019-01-08每天一个Linux命令

    vim命令模式下的置换 在vim中直接替换 1,$ 的意思是从第一行一直到最后一行 所以呢!你也可以指定开始替换的...

  • vim

    vim快捷键使用 替换每一行的开头和末尾 快速多行合并为一行

  • Linux-vim替换命令

    写代码时,难免需要替换一些字符串,vim的替换命令如下: #替换每一行的第一个a:%s/a/b/ #全部替换:%s...

  • Vim 统计行内特定字符次数,按奇偶替换

    今天遇到一个问题,要统计一个文本行内特定字符的出现次数,同时按照奇数次替换,比如: "aaa"aaad"aaaa"...

  • Linux脚本总结

    1、总结vim命令行模式常见快捷方式,以及vim查找,替换的方法 vim查找 vim替换 2、总结脚本中运算符、逻...

  • 关于Vim

    插入命令 关于行 删除命令 复制和剪切命令 替换和取消命令 搜索和搜索替换命令 保存和退出命令 vim使用技巧 进...

  • FFmpeg开发--Vim详解

    Vim编辑器Vim处理模式: Vim常用命令: Vim查找与替换:

  • Vim 常用命令

    VIM 命令 文件命令 VIM的模式 VIM导航命令 VIM插入命令 VIM查找命令 VIM替换命令 VIM使用技...

网友评论

      本文标题:Vim 奇偶替换特征行

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