IntelliJオートコンプリートエスケープ
-
06-07-2019 - |
質問
私はIntelliJを試していますが、IntelliJに可能な解決策があるかどうかわからないという小さな迷惑があります。 EclipseとTextMate(およびオートコンプリートを備えた他の多くのエディター)でさえ、文字列や括弧領域などのオートコンプリートセクションの途中にいる場合、EnterまたはTabを押してそのセクションの最後に到達できます。例えば:
if (blah.equals(something.toString()))
キャレットは、toString部分の括弧の中央にあります。 IntelliJでは、これらの括弧を問題なく入力するか、「終了」キーを押すことができます。最後に到達するためのキー。 1つはささいな迷惑で、もう1つはホームロウから手を離さなければならないため、より迷惑です。日食では、Enterキーを押すと、これから抜け出します... TextMate、Tab。
微調整できる設定や、IntelliJで同様の機能を提供するためにできることはありますか?
解決
そのコンテキストで、CrazyCoderが示唆するように Ctrl-Shift-Enter を押すと、このような動作が得られます。ブレースが追加され、カーソルが次の行に置かれます。また、 Shift-Enter を押すと、次の行に移動し、コードについての仮定が少なくなります。 Ctrl-Shift-Enter は、対象のコードによって動作が異なるため、一貫した動作が得られません。たとえば、文字列の途中で行末に移動し、セミコロンを追加します。
ここでは、行末に到達するためにendが優先キーであるようです。別のキーの組み合わせがより適切に機能する場合は、キーマップに行の最後に移動するための追加キーを追加できますが、括弧の真ん中にいるため、その動作を変更するだけではありません。
IDEAオプションを見ると、括弧の振る舞いは実際にはforループを自動的に作成するようなライブテンプレートではないようです。したがって、完了時にタブで移動するのではなく、単に括弧を自動的に補完するだけです。あなた、そしてまるでそうではなかったかのように滑らかにタイプしたいかもしれないことを知的に認識します。
他のヒント
iは cmd-shift-enter (Macの場合)を試しましたが、結果は(javascriptコードの場合)私にとってより便利なようです。ここでカーソルを視覚化するためにパイプ( '|')を使用しています:
before:
var x = func1(func2(|))
cmd-shift-enterを押した後:
var x = func1(func2());|
したがって、行末にセミコロンも追加されます(ただし、次の行にジャンプするにはもう一度Enterキーを押す必要があります)。
編集
このショートカットがさらに便利であることがわかりました:
before:
if(a == b|)
cmd-shift-enter を押した後:
if(a == b) {
|
}
phpとjavascriptの両方で動作します
これらの回答は古いので、 Shift + KEY
Javaの場合、System.out.println(" Hello World!"); カーソルが""内にある場合、 Shift + " は""の外側に移動します。および Shift + )は()
の外側に移動します現在、Intellijではサポートされていません。これについては、 http://youtrack.jetbrains.com/issue/IDEA-で公開機能のリクエストがあります。 74666 。余分な投票がいいでしょう。