在IntelliJ代码完成后,我怎样才能使光标最终在parens里面,而不是在他们之后

问题描述:

当在IntelliJ中为初学者教程使用代码补全时,它将光标放在parens后面,迫使我每次点击左键和每一次。使用管道表示游标:“printl”完成到“println()|”当我需要的是“的println(|)”在IntelliJ代码完成后,我怎样才能使光标最终在parens里面,而不是在他们之后

随着第二,如果你键入“完成后,你会得到的println(”“),但在)此刻我得到的是调用println(””

我知道这似乎是一件简单的事情,但是当你不得不继续将右手从钥匙上移开以击中< - 约75%的线条箭头时,它会变成减慢速度并且变得非常快速的东西。

感谢, 斯科特

在引号之间使用带有$ END $的实时模板正是我所需要的。

现在,如果我只想知道如何编辑股票println()以包含$ END $或使我的实时模板显示在列表的顶部而不是底部。

必须达到选择正确的模板种类的目的,使得一个,所以我不需要达到移动光标笑lol

在列表中,你可以“的println”超载选择具有一定paramete RS。

如果您打印到标准输出,您可以使用实时模板:输入“sout”并按Tab键。

IntelliJ的代码完成是上下文敏感的w.r.t它放置光标的位置。

考虑以下方法:

private void foo() {} 

private void bar(String s) {} 

如果键入fo,让的IntelliJ自动完成foo()将放置支架后的光标,因为的IntelliJ知道foo()没有参数,它假定你要转移到别的东西上。

如果键入ba,让汽车的IntelliJ完成bar()就会把光标括号,因为的IntelliJ知道bar()需要一个参数,以便它假定你要进入下一件事是bar()参数。

当然,如果一个方法超载,并且允许零个或多个参数,它可能会有点混乱。

如果您发现IntelliJ的选择是错误的,那么您可以创建一个Live Template。这里是sout现场模板的一个例子:

System.out.println($END$); 

这原来sout + TABSystem.out.println();,并按照$END$指令,将光标置于的括号。