gpt4 book ai didi

使用 OR 运算符和可视模式选择文本的多种模式的 Vim 替换

转载 作者:行者123 更新时间:2023-12-01 21:50:00 26 4
gpt4 key购买 nike

我有:

RT_T_up2 = CubicSpline(z_alot, RT_tab_up2)
RT_T_dw2 = CubicSpline(z_alot, RT_tab_dw2)
RT_T_up3 = CubicSpline(z_alot, RT_tab_up3)
RT_T_dw3 = CubicSpline(z_alot, RT_tab_dw3)
RT_T_up4 = CubicSpline(z_alot, RT_tab_up4)
RT_T_dw4 = CubicSpline(z_alot, RT_tab_dw4)

我想在 up 和 dw 前面加一个“1”,即得到:

RT_T_up12 = CubicSpline(z_alot, RT_tab_up12)
RT_T_dw12 = CubicSpline(z_alot, RT_tab_dw12)
RT_T_up13 = CubicSpline(z_alot, RT_tab_up13)
RT_T_dw13 = CubicSpline(z_alot, RT_tab_dw13)
RT_T_up14 = CubicSpline(z_alot, RT_tab_up14)
RT_T_dw14 = CubicSpline(z_alot, RT_tab_dw14)

原文是用可视化模式选择到vim中的。

我尝试这样做:

:'<,'>s:up\([2-4]\):up1\1:e |  s:dw\([2-4]\):dw1\1:e

但它仅通过给出以下内容替换第一个up:

RT_T_up12 = CubicSpline(z_alot, RT_tab_up2)
RT_T_dw2 = CubicSpline(z_alot, RT_tab_dw2)
RT_T_up13 = CubicSpline(z_alot, RT_tab_up3)
RT_T_dw3 = CubicSpline(z_alot, RT_tab_dw3)
RT_T_up14 = CubicSpline(z_alot, RT_tab_up4)
RT_T_dw4 = CubicSpline(z_alot, RT_tab_dw4)

如何在每个 updw 模式之后插入“1”?

最佳答案

使用带有交替运算符的嵌套分组

我为 updw 创建了子表达式组,并将它们与交替运算符 \| 嵌套在一起。

正如 @wobr 所指示的,使用 g 标志对给定行上的所有出现执行替换。您可以在此处阅读有关替换标志的信息,:help :s_flags

我在替换字符串中仅引用子表达式组 \1\4:

'<,'>s/\(\(up\)\|\(dw\)\)\([2-4]\)/\11\4/ge

e 标志只是防止搜索模式失败时出现错误消息。大多数人并不介意错误消息。


如何正确引用子表达式组

在模式中从左到右,计算起始括号 (。计数将是子表达式的引用编号:

sub-expression reference counting

:help 模式中提到了这一点。


以下是此命令的前后对比:

enter image description here

之后:

enter image description here

关于使用 OR 运算符和可视模式选择文本的多种模式的 Vim 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59673281/

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