使用键盘快捷键在IntelliJ中重新排列方法参数


92

在IntelliJ中,我可以通过按+ Shift+ (或+ Shift+ )轻松地重新排列语句的顺序(或该部分的整个方法)。

我想知道是否有捷径可以轻松地更改方法参数的顺序,以便

public void sth(String a, String b) {...}

会变成

public void sth(String b, String a) {...}

按下键盘快捷键(假设光标位于其中一个参数上)。

如果IntelliJ只是重新排列参数,对我来说就足够了。也就是说,这不必触发整个Refactor> Change method签名事件。


1
具有三个或更多参数时,该如何表现?:)
Konstantin Yovkov

2
说我的光标在第二个参数上:将其向上移动,它应该成为第一个。向下移动它,它应该成为最后一个。
Stefan Haberl

2
一个参数一次向上或向下移动!我很想能够做到这一点!
Per Eriksson

1
Ctrl+F6然后Alt+Up还是Alt+Down要移动参数?
Lyubomyr Shaydariv

1
是的,比您想像的更多。当我开始充实方法时,通常会Alt-Enter 在需要时添加其他参数。完成后,然后将参数重新排列为更合理的顺序。另外,我认为对方法调用也具有此快捷方式确实很棒。(老兄,使用具有4个或5个以上相同类型参数的旧式API时,我经常出错的顺序是多少!)
Stefan Haberl

Answers:


155

自从IDEA 16 EAP起,就需要采取行动。在菜单中:

代码 向左/向右移动元素

键盘快捷键是 Alt+ Ctrl+ Shift+ Left/RightAlt+ Cmd+ Shift+Left/Right的OSX)。

参见http://blog.jetbrains.com/idea/2016/01/intellij-idea-16-eap-improves-editor-and-vcs-integration/更多详细信息,。


我想我需要再等一会儿,直到IDEA 16发行到野外,但这真是个好消息!
Stefan Haberl

EAP已经很流行了,您可以尝试一下:)我认为发布不会花费超过2个月的时间。
彼得·格罗莫夫

4
很好,但是Lyubomyr Shaydariv的答案:stackoverflow.com/a/35359882/4024146更好,因为它可以重构并更改对参数更改的依赖。这只是切换此方法的参数,而不是其他方法的方法调用。您不需要为其创建宏,只需按CTRL + F6并使用ALT +↓
mtrakal

1
@mtrakal他们是两回事。当我编写一个方法时,不需要繁重的(缓慢的)重构-我只想轻松地移动参数。真正的问题是我经常在单独的行上有参数,所以这行不通。(我真的想要上一个移动和下一个移动,而不是左右移动。)
James Moore

如果在不同方法的多个参数上具有多个光标,则可以将它们一起移动。
WesternGun

16

我不确定在IDEA中是否可行,但是您可以尝试对两个参数的方法使用编辑器宏:

  • 编辑器->宏->开始宏记录
  • 记录您的宏:
    • Ctrl+F6打开“更改签名”对话框
    • Alt+交换第一个和第二个参数
    • Tab禁用“参数”选项卡,并让“重构”按钮获得焦点
    • Enter 在执行重构时关闭对话框
  • 编辑器->宏->停止宏录制并为宏命名,例如“交换方法参数1和2”。

然后通过“编辑器”->“宏”菜单访问您的宏,或在“设置”->“键盘映射”->“主菜单/编辑/宏/交换方法参数1和2”中为其分配自定义快捷方式。对我来说,它看起来是一种非常肮脏且不受上下文限制的方式,但也许可以为您带来一些帮助。


11

在Ubuntu 18.04上,默认快捷键是Ctrl + Alt + Shift + Super +左/右,以将参数左右移动。

这是因为它设置为不与某些新的OS级快捷方式冲突


1
谢谢,尽管它需要进行手指操,但比绑定一个单独的键要好得多。
gMale
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.