gpt4 book ai didi

regex - Vim:当使用\_ 跨多行匹配字符串时。在正则表达式中,:yank 命令仅适用于第一行

转载 作者:行者123 更新时间:2023-12-04 12:14:05 24 4
gpt4 key购买 nike

我想提取一些跨越多行并且可以与单个 Vim 正则表达式匹配的文本的多次出现(使用元字符 \_ )。
不幸的是,虽然匹配的行在 Vim 中正确突出显示,
当我在匹配的正则表达式后添加任何 Vim 命令(如删除或 yank)时,
该命令仅适用于每个匹配项的第一行。

示例:

 1: bad_function(arg1,  
2: arg2, arg3,
3: ...
4: argN);
5: good_function();
6: ...
7: bad_function(arg2_1,
8: ...
9: arg2_N);
10: another_good_function();

如果我执行 :g/bad_function([^;]\+\_[^;]\+;$/d ,那么只有行
1 和 7 被删除,尽管突出显示的是第 1-4 和 7-9 行。

如何猛拉/删除所有匹配(突出显示)的行?

最佳答案

尝试这个:

:let @a=''
:g/first\_.*second.*$/normal! v/second^M$"Ay

输入 ^M用 CTRL-V 然后回车。

关于regex - Vim:当使用\_ 跨多行匹配字符串时。在正则表达式中,:yank 命令仅适用于第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4290435/

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