gpt4 book ai didi

vim - 在 Vim 中的替换内替换

转载 作者:行者123 更新时间:2023-12-04 23:02:01 26 4
gpt4 key购买 nike

如何在替换中进行替换?

我知道您可以将光标下的当前单词放入替换中,但我想在将其作为输出之前对其执行替换。

例如:

  • 拥有通过 clbuttic filter 的文件并替换您知道受到更坏影响的词,例如去机构化(提示:美利坚合众国的 Consbrestution)。该文件也有一些被正确替换的词。
  • 在整个文档中将 Wooloomooloo 中的 o 更改为 0(并且仅针对该词)

一个真实世界的例子(来 self 的 vim 历史)正在 Latex 文档中运行

%s/\\begin{table}\[h\]/\\begin{table}\[H\]/c

我复制字符串的地方只是为了做一个小改动。

最佳答案

将 o 替换为 0 很简单:

:s/o/0/g

也许您想知道如何将它应用于(视觉)选择?

:s/\%Vo/0/g

编辑可能是你想要的(见评论)

:%s/\<\zs[Wolm]\+\>\ze/\=substitute(submatch(0), 'o', '0', 'g')/g

这是做什么的:

  • [Wolm]\+匹配仅包含 W 的序列, o , l , m
  • \<[Wolm]\+\>匹配(独立的)相同的(所以,Wooloomooloo 或mooWWlomo 都匹配,但不匹配amool 等)。
  • \zs标记替换的匹配 的开始,\ze结束
  • \=substitute(submatch(0), 'o', '0', 'g')替换匹配项(在 \zs\ze 之间)但替换为 0对于 o

你可以从这个模式开始

  • 替换 [Wolm]\+与你的实际目标
  • \zs...\ze 之外添加可选上下文这样你就可以减少匹配
  • 添加\c在模式的前面启用不区分大小写的匹配

关于vim - 在 Vim 中的替换内替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com