Vim 的替代命令可以像 sed 的“t labe”一样处理递归模式吗?

2023-12-01

只是一个随机的例子:

aaa 01 02 03 04 05

“aaa”后面的数字个数不固定。替换后的预期结果是:

aaa 01
aaa 02
aaa 03
aaa 04
aaa 05

我知道如何使用 sed 的“t label”或 Vim 使用类似命令来制作它

:%s/\v%(^(\a+) .{-})@<= (\d+)/\r\1 \2/g

但我想知道 Vim 是否有一种递归方法来处理这个问题。


使用 vim 替换 (:s)

1 Using :s并确认完成工作:

:%s/\s\+/\raaa /gc

当 vim 要求你确认时,你按n then a.

2 vim 中的调用函数:s命令:

%s/\v((\S+)\s+\S+)(.*)/\=submatch(1).substitute(submatch(3), '\s\+',"\r".submatch(2)."&",'g')

上面的命令看起来很长,但是非常简单。

使用 vim 宏

如果我是你,我会用 vim 中的宏来完成。就我个人而言,我觉得这将是“vim”方式:

假设示例中的行位于 line1,并且光标位于第一列。您按:

qqyw2f<Space>i<Enter><Ctrl-r>"<Esc>0q

录制宏并将其保存在q登记。接下来,您可以将宏重播 x 次,例如:

99@q

看看 vim 是如何完成这项工作的。完成这项工作的击键总数将少于 20 次。

看起来像:

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vim 的替代命令可以像 sed 的“t labe”一样处理递归模式吗? 的相关文章

  • Java 中的正则表达式,\\s 与 \\s+

    下面两个表达式有什么区别 x x replaceAll s x x replaceAll s 第一个匹配单个空格 而第二个匹配一个或多个空格 它们是所谓的正则表达式量词 它们执行像这样的匹配 取自文档 http docs oracle co
  • 解析格式化字符串

    我正在尝试创建一个通用格式化程序 解析器组合 示例场景 我有一个 string Format 的字符串 例如var format 0 1 我有一个用于输入的对象 字符串 数组 例如var arr new asdf qwer 我正在使用格式字
  • 需要正则表达式帮助

    我正在尝试替换两次或多次出现的 br like br br br 标签与两个一起 br br 具有以下模式 Pattern brTagPattern Pattern compile lt s br s s gt s 2 Pattern CA
  • 正则表达式在 Velocity 模板中不起作用

    我在 Test java 中尝试过这个 String regex lt s br s s gt String test1 lt br gt System out println test replaceAll regex 但是当我在速度模板
  • 在 jQuery 选择器上使用正则表达式查找基于 ids 的所有元素

    我有几个具有唯一 id 的元素 如下所示 div div div div div div 我希望使用 jQuery 可以实现以下功能 item top each function this hide 我对正则表达式没有很好的掌握 希望得到一
  • 正则表达式排除双空格

    我正在寻找 c asp net 3 5 的正则表达式 如果句子或单词组中存在任何双空格 该正则表达式将会失败 the cat chased the dog true the cat chased the dog false doubles
  • 将嵌入其他文本的长州名称转换为两个字母的州缩写

    我的目标是识别以具有其他文本的字符向量写出的美国各州 并将各州转换为缩写形式 例如 北卡罗来纳州 到 北卡罗来纳州 如果向量只有长形式的状态名称 那就很简单 但是 我的向量在随机位置有其他文本 如示例 states 中所示 states l
  • VIM:可用的快捷方式?

    我在 vim 中使用了许多快捷方式 其他快捷方式由插件使用 有时我想为新命令添加快捷方式 但事后请注意该快捷方式已被使用 有没有办法查看 VIM 中所有可用快捷键的列表 所有 ctrl shift alt 快捷键 Type help ind
  • 在 C++ 中使用 regex_iterator 的确切方法是什么?

    我一直在寻找一种好方法来计算字符串中特定类型的子字符串的数量 比如说 我想计算字符串 smstyuismsms 中 sms 的出现次数 我在论坛中找到了答案 有人建议使用 regex iterator 但是 当我尝试如下时 string i
  • 将文本中的 URL 替换为 HTML 链接

    不过 这是一个设计 例如 我放置了一个链接 例如 http example com http example com in textarea 我如何让 PHP 检测到它是http 链接 然后将其打印为 print a href http w
  • Ruby 字符串上的扫描和匹配有什么区别

    我是 Ruby 新手 并且一直使用String scan搜索某个数字第一次出现的位置 返回值在嵌套数组中有点奇怪 但我只是去了 0 0 为了我想要的价值观 我确信它有它的用途 只是我还没有使用它 我刚刚发现有一个String match方法
  • 如何在 IdeaVIM 中配置 Vim 的 Ctrl + N 和 Ctrl + P 补全?

    在Vim中我们可以使用Ctrl N or Ctrl P完成代码补全 如何在 IdeaVim for IntelliJ 中配置它 Alt and Alt Shift 既可以在普通 IntelliJ 中工作 也可以在安装了 IdeaVim 的情
  • MongoDb Spring 在嵌套对象中查找

    我正在使用 Spring Data Mongodb 和这样的文档 id ObjectId 565c5ed433a140520cdedd7f attributes 565c5ed433a140520cdedd73 333563851 list
  • 正则表达式匹配组,但组成员除外

    因此 有许多正则表达式可以匹配特定的组 如下所示 Any character except a newline m Any character the m modifier enables multiline mode w A word c
  • 如何用破折号替换所有大写字母,用正则表达式替换所有小写字母?

    如何在 php 中用破折号和小写字母替换所有大写字母 Such as understandRegexBetter to understand regex better 我的 Google fu 和对以下代码的实验并没有让我走得太远 echo
  • 将整个单词与特殊字符匹配的正则表达式不起作用? [复制]

    这个问题在这里已经有答案了 我正在经历这个问题C Regex Match 整个单词 https stackoverflow com q 1209049 443568 它说要匹配整个单词使用 b模式 b 这对于匹配没有任何特殊字符的整个单词效
  • VS 代码片段变换: if (正则表达式匹配 X) { 使用变换 A } else if (正则表达式匹配 Y) { 使用变换 B }

    我正在尝试创建一个片段 该片段根据文件路径创建类名 如果文件名为index js 我希望类名采用文件夹名称 否则 使用文件名 如果文件被命名 我有一个当前正在工作的转换 如下所示 index js 它正确插入文件夹名称 我将如何扩展这个 假
  • 使用 regEx 验证属性名称

    我想使用点表示法规则 任何字母或数字以及 and 只要它不以数字开头 显然如果使用括号表示法那么一切都是有效的 我一直在尝试找出正则表达式解决方案 但我对正则表达式的了解并不多 我认为我当前的模式将允许字母 数字 and 但我不知道如何禁止
  • 正则表达式。如何从该字符串中获取多个匹配项?

    我正在使用 JavaScript 正则表达式 假设我有以下字符串 XXX 1 XXX XXX 2 XXX XXX 3 XXX YYY 1 YYY YYY 2 YYY YYY 3 YYY 我想运行正则表达式并获得以下模式的结果 Match1
  • Notepad++ 正则表达式代码提取行尾

    我有一个需要捕获的源代码 整个文件只有一行 但我无法捕获我需要的数据 allow ok secret 4326dwsaddsafsd286435dsfs754 现在我需要捕获每次都会变化的数据 4326dwsaddsafsd286435ds

随机推荐

  • 观察 UITableView 中的捏合多点触控手势

    我正在寻找在 UITableView 之上实现捏入 捏出 我已经研究了几种方法 包括这个 类似问题 但是虽然我可以创建一个UIViewTouch对象并将其覆盖到我的 UITableView 上 滚动事件不会转发到我的 UITableView
  • 关于Apple的KMLViewer placemarkDescription和注释字幕

    在我的应用程序中 我使用 Apple 的 KMLViewer 来显示从 KML 文件获取的注释 在文件 KMLParser m 中 有一个实例变量 placemarkDescription它将描述标签下的信息从 kml 文件转换为注释副标题
  • 将 `.klib` 库添加到 kotlin 多平台

    我想知道如何将我的 cinterop ted 库导入到 kotlin 多平台构建的 gradle 构建中 我已经创建了library def文件并填充它 我还生成了library klib以及随之而来的文件夹 我只是不明白如何将其导入到gr
  • 名称为 char[] 的变量

    如何在 C 中使用 char 表中指定的名称创建变量 就像是 char name gets name int name 0 我希望你明白我的意思 C 与您可能习惯的 Python 或 Ruby 等脚本语言不同 C 是编译而不是解释的 在运行
  • 使用replaceall输出错误

    为什么我从以下代码中得到 AAAAAAAAA 而不是 1A234A567 String myst 1 234 567 String test myst replaceAll A System out println test 任何想法 尝试
  • Android 文档中没有关于 RecyclerView 和 StaggeredGridLayoutManager 的好例子

    我找不到更好的使用示例RecyclerView with StaggeredGridLayoutManager 甚至不在安卓文档 Q1 我需要一些例子来正确解释如何使用RecyclerView with StaggeredGridLayou
  • Integer.class 和 Integer.TYPE 之间的区别[重复]

    这个问题在这里已经有答案了 这两者有什么区别 原始类型不能有 类 可以吗 它是原始类型 没有对象可以有类 这两者有什么区别呢 我不确定你的意思 但是 AClass对象是类型的运行时代表 也就是说 有这样的事情int class这不同于Int
  • 为什么 sbt 在设置 $JAVA_HOME 时报告“未检测到 java 安装”?

    我有 2 个 sbt android scala 项目 第一个是单个的 ls al drwxr xr x 13 alex staff 442 Dec 24 20 44 drwxr xr x 4 alex staff 136 Dec 24 2
  • JMS 消耗多个主题

    我是 Java 新手 正在开发一个使用多个 不同 主题并将其发送到另一台服务器的项目 我想知道处理多个主题的最佳方法是什么 据我了解 每个消费者都与一个主题相关 因此 如果我必须使用多个主题 则每个不同的主题都需要一个消费者 由于消费者进行
  • 如何修复一些 Xcode 13 错误,例如无法正确跳转到定义?

    我最近更新到 Xcode 13 突然 显示代码操作 中的选项不再起作用 这包括 跳转到定义 显示快速帮助 甚至突出显示所有使用某些规范的地方 有人遇到同样的问题或有解决办法吗 我已经尝试关闭应用程序 重新启动计算机 清理构建文件夹 但没有任
  • 在 Javascript 中将所有复选框值作为数组传递

    我有以下复选框 我需要将它们作为数组值获取
  • 防止弹性项目超过父级高度并使滚动条工作

    如何防止子div带有滚动条和flex 1超过 Firefox 中其父级 Flexbox 的高度 它在 Chrome 中工作正常 CodePen 链接 如果您更喜欢它而不是 Stack Overflow 片段 https codepen io
  • 在循环中追加到字典值列表

    我有一些代码 其中使用名称列表和结果文件 最终是多个文件 团队 名称 地点 我正在寻找的最终结果是将每个人的姓名 键 与点 值 列表相关联 但是 当我使用下面的代码时 我最终得到的结果如下 Abe 100 80 90 Bob 100 80
  • $_ 的奇怪值/行为

    输出应该是aaabbbcccdddeee not aaa555234dddeee perl wle map for my i 2 i lt 5 i push a a e print a aaa555234dddeee 仅在引用 取消引用时的
  • 如何异步等待 x 秒然后执行某些操作?

    我知道有Thread Sleep and System Windows Forms Timer and Monitor Wait在 C 和 Windows 窗体中 我似乎无法弄清楚如何等待 X 秒然后做其他事情 而不锁定线程 我有一个带有按
  • 如何在 python 中上传 FTP 上的完整目录? [复制]

    这个问题在这里已经有答案了 我必须在 FTP 服务器上上传一个目录 其中包含子目录和文件 但我似乎无法正确理解 我想按原样上传目录 及其子目录和文件所在的位置 ftp FTP ftp connect host port ftp login
  • hibernate中如何删除连接表中的记录

    论坛会员 我需要你们所有人的帮助 我有两个具有一对多关系的 POJO 模型 我的项目 pojo 如下 Entity Table name project public class Project implements java io Ser
  • 将文件存储在 HDFS 上的命令

    介绍 一个 Hadoop NameNode 和三个 DataNode 已安装并正在运行 下一步是向 HDFS 提供文件 已执行以下命令 hadoop fs copyFromLocal ubuntu 14 04 desktop amd64 i
  • 如何检测访问我的网站所使用的浏览器?

    如何检测用户正在使用什么浏览器 IE Firefox Opera 访问我的网站 Javascript PHP ASP Python JSP 以及您能想到的任何其他语言的示例都会有所帮助 是否有一种与语言无关的方法来获取此信息 如果是为了处理
  • Vim 的替代命令可以像 sed 的“t labe”一样处理递归模式吗?

    只是一个随机的例子 aaa 01 02 03 04 05 aaa 后面的数字个数不固定 替换后的预期结果是 aaa 01 aaa 02 aaa 03 aaa 04 aaa 05 我知道如何使用 sed 的 t label 或 Vim 使用类