在完整的 IntelliJ 代码中,如何使光标在括号内结束,而不是在它们之后

In IntelliJ code complete, how can I make the cursor end up inside the parens, not after them

在 IntelliJ 的初学者教程中使用代码完成时,它一直将光标放在括号后面,迫使我每次都按左键。

用竖线表示游标:"printl"完成为"println()|",而我需要的是"println(|)"

第二个,如果你在完成后输入 ",你会得到 println("") 但目前我得到的是 println()""

我知道这似乎是一件简单的事情,但是当您必须不断将右手从按键上移开以便在大约 75% 的台词中按下 <- 箭头时,它就会让您慢下来,并且老得真快

谢谢, 斯科特

在列表中,您可以 select 重载具有一些参数的 "println"。

如果您要打印到标准输出,您也可以使用实时模板:键入 "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 + TAB变为System.out.println();,并且根据$END$指令,光标位于括号内

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

现在,如果我能弄清楚如何编辑 stock println() 以包含 $END$ 或使我的实时模板显示在列表顶部而不是底部。

不得不伸手去 select 正确的模板有点违背了制作模板的目的,所以我不需要伸手去移动光标哈哈