2009-10-27 2 views
11

Ich versuche, herauszufinden IntelliJ und hat ein kleines Ärgernis, dass ich nicht herausfinden kann, ob es eine mögliche Lösung für in IntelliJ ist. In Eclipse und sogar TextMate (sowie vielen anderen Editoren mit Autocomplete) können Sie, wenn Sie sich in der Mitte eines Autocomplete-Abschnitts befinden, z. B. einen String- oder Klammerbereich, die Eingabetaste drücken, um zum Ende dieses Abschnitts zu gelangen. Zum Beispiel:IntelliJ die automatische Vervollständigung entkommen

Der Caret wäre in der Mitte der Klammer des toString Teil. In IntelliJ können Sie durch diese Klammern ohne Problem eingeben, oder Sie könnten vielleicht die "Ende" -Taste drücken, um an das Ende davon zu kommen. Der eine ist ein kleiner Ärger, der andere nerviger, da ich meine Hände aus der Heimreihe nehmen muss. In der Finsternis könnte ich die Enter-Taste drücken und es würde mich aus dieser Situation herausbringen ... TextMate, Tab.

Gibt es eine Einstellung, die ich zwicken oder etwas, was ich tun kann, mir eine ähnliche Funktionalität in IntelliJ geben?

Antwort

6

In diesem Kontext, wenn Sie drücken Ctrl-Shift-Enter wie CrazyCoder schlägt, erhalten Sie dieses Verhalten. Es wird die Klammern hinzufügen und den Cursor auf die nächste Zeile setzen. Sie können auch Shift-Enter drücken, was Sie in die nächste Zeile bringt und weniger Annahmen über den Code macht. Ctrl-Shift-Enter verhält sich je nach dem Code, den es betrachtet, unterschiedlich, so dass Sie kein konsistentes Verhalten erhalten. Zum Beispiel in der Mitte eines Strings platziert es Sie am Ende der Zeile und fügt ein Semikolon hinzu.

Es scheint nur, dass Ende Schlüssel hier bevorzugt wird, bis zum Ende der Leitung zu bekommen. Sie können in der Schlüsselzuordnung einen zusätzlichen Schlüssel hinzufügen, um zum Ende der Zeile zu gelangen, wenn eine andere Tastenkombination für Sie besser geeignet ist. Sie ändert jedoch nicht nur das Verhalten, da Sie sich in der Mitte von Klammern befinden. Wenn man sich die IDEA-Optionen anschaut, sieht es so aus, als ob das Klammerverhalten nicht wirklich eine Live-Vorlage ist, wie zum Beispiel das automatische Erstellen einer for-Schleife, so dass man die Tabs nicht automatisch ausfüllt für Sie und intelligent erkennen, dass Sie vielleicht flüssig schreiben möchten, als ob es nicht tat.

5

ich versuchte cmd-shift-enter (auf Mac) und das Ergebnis scheint mir nützlicher (in JavaScript-Code). i bin mit einem Rohr ('|') hier die Cursor sichtbar zu machen:

vor:

var x = func1(func2(|)) 

nach dem Drücken cmd-shift-Eingabe:

var x = func1(func2());| 

so fügt es auch die Semikolon am Ende der Zeile (Sie müssen jedoch noch einmal die Eingabetaste drücken, um zur nächsten Zeile zu springen).

EDIT

gerade diese Abkürzung gefunden ist noch nützlicher:

vor:

if(a == b|) 

nach dem Pressen cmd-shift-enter:

if(a == b) { 
    | 
} 

funktioniert sowohl in PHP und Javascript

1

Da diese Antworten etwas alt sind, weiß ich nicht, ob jemand bewusst ist, dass man aus der bekommen eingeschlossen automatisch vervollständigt abgelegt, indem Sie Umschalt +KEY

In Java, wenn Sie Habe System.out.println ("Hallo Welt!"); Wenn Sie den Cursor im "ist", Shift- + " werden Sie außerhalb der "" erhalten und Shift- + ) werden Sie außerhalb des()

bekommen