Java 在Intellij中自动执行重复编辑操作
在Intellij IDEA中,自动化重复编辑操作的方法是什么 例如,我有一个包含几十个条目的文件,如下所示:Java 在Intellij中自动执行重复编辑操作,java,refactoring,intellij-idea,Java,Refactoring,Intellij Idea,在Intellij IDEA中,自动化重复编辑操作的方法是什么 例如,我有一个包含几十个条目的文件,如下所示: public static final Test1 = new Test(A a1, B b); public static final Test2 = new Test(A a2, B b); public static final Test3 = new Test(A a3, B b); public static final Test4 = new Test(A a4, B b)
public static final Test1 = new Test(A a1, B b);
public static final Test2 = new Test(A a2, B b);
public static final Test3 = new Test(A a3, B b);
public static final Test4 = new Test(A a4, B b);
我想替换文件中的所有
bb
,并传递一个null
参数。在像gvim
这样的编辑器中很容易做到这一点,通常您会记录一个宏
,然后重复它。当Intellij的重构功能受到限制时,实现这种自动化的通常方法是什么?如果您能够识别一种模式,您可以始终将文本复制到textpad或类似的地方,并执行正则表达式替换,然后将文本复制回来。我经常这样做
对于您的特定示例,请在textpad中尝试此选项-
这在IntelliJ思想中也很容易。您可以切换到列模式编辑(从主菜单编辑|列模式),然后选择要替换的列,只需键入您的
null
同时检查此屏幕广播:也许您可以使用键盘宏录制器:
或者您可以使用IDEA的功能我同意我的示例太简单,无法说明问题,但在很多情况下,简单的正则表达式替换将不起作用。假设我想从构造函数中重构出参数,将其移动到另一个文件并将其传递到另一个类的构造中。还有更多的实例需要更复杂的处理。宏似乎在某种程度上是有用的,但它们通常不像您在Intellij中所期望的那样工作。是的,正则表达式绝对是比普通的find-replace做更多事情的有用方法!!是的,这种重构是不可用的。但是,您可以更改方法签名/构造函数参数等,但您不能保留相同的签名并对某些调用说ChangeArgumat值——可以说,这不是重构。