0

所以我有一组陈述,例如

    if                       {return IF;}
    int                       {return INT;}
    for                       {return FOR;}

我希望它读起来像

    if                       {return IF;}        IF
    int                       {return INT;}      INT
    for                       {return FOR;}      FOR

这是因为我需要将所有这些变量复制到代码的另一部分,如果页面是这样格式化的,我可以做一个简单的文本块。

我认为最简单的方法是使用查找/替换正则表达式。然而,虽然很容易通过说 [return .*}] 来选择我想要的东西,但我似乎无法弄清楚如何将它移到其他地方。

谢谢您的帮助!

4

3 回答 3

1

您可能想看一下Structural Replace访问的内容Ctrl+Shift+M。它是一个存在于核心发行版中的插件,但在某些安装中可能会被禁用。

一个更简单且功能较弱的选项是 Idea 的搜索和替换反向引用中的正则表达式替换,此处介绍了该选项。

于 2013-10-19T20:49:34.860 回答
0

你需要的是这个漂亮的东西,叫做“匹配组”。您可以在 find 表达式中使用括号来执行此操作,然后您可以使用数字组引用在“替换”中引用这些组。\1 指的是第一组,\2 指的是第二组,依此类推。见鬼去吧,这里有一个例子:

s/\(.*return \)\(.*\)\(;.*\)/\1\2\3       \2/

这在 vi 中有效。请注意 find 表达式中每个括号前的 \。它很丑,但你需要它。否则它将被解释为您尝试匹配括号。当然,在 vi 中,您可以在查找/替换前面放一个 % 以一次应用于所有行。

很重要。有时可以将编辑器配置为在“.”中包含行尾字符。火柴。为此,您必须禁用该功能,或替换“。” 使用与行尾字符不匹配的表达式。我认为 [\s\S] 会起作用。

另一个小细节。如果您希望它们漂亮并排成一行,而不仅仅是在替换表达式中键入一堆空格,您可以为固定位置的制表符放置几个 \t。

于 2013-10-19T20:13:36.150 回答
0

您可以按此“选择所有事件”按钮。

让您复制/剪切等。

在此处输入图像描述

于 2019-12-12T20:31:58.347 回答