2009-10-27 21 views
11

Próbuję IntelliJ i mam jedną niewielką irytację, że nie mogę się dowiedzieć, czy istnieje możliwe rozwiązanie w IntelliJ. W Eclipse, a nawet TextMate (a także wielu innych edytorach z autouzupełnianiem), jeśli jesteś w środku sekcji autouzupełniania, takiej jak ciąg lub nawias, możesz nacisnąć Enter lub Tab, aby przejść do końca tej sekcji. Na przykład:Autouzupełnianie IntelliJ escape

if (blah.equals(something.toString())) 

Karetka znajdowałaby się w środku nawiasu części toString. W IntelliJ możesz pisać przez te nawiasy bez problemu, możesz też nacisnąć klawisz "Zakończ", aby dojść do końca. Jeden jest drobnym rozdrażnieniem, drugi jest bardziej irytujący, ponieważ muszę zdjąć ręce z domowego rzędu. W czasie zaćmienia mógłbym nacisnąć klawisz Enter i to by mnie z tego wyciągnęło ... TextMate, Tab.

Czy istnieje ustawienie, które można poprawić lub coś, co mogę zrobić, aby zapewnić podobną funkcjonalność w systemie IntelliJ?

Odpowiedz

6

W tym kontekście po naciśnięciu klawisza Ctrl-Shift-Enter, jak sugeruje CrazyCoder, można uzyskać takie zachowanie. Doda nawiasy klamrowe i umieści kursor w następnej linii. Możesz także nacisnąć Shift-Enter, co spowoduje przejście do następnej linii i mniej założeń dotyczących kodu. Ctrl-Shift-Enter zachowuje się inaczej w zależności od kodu, na który patrzy, więc nie da ci spójnego zachowania. Na przykład w środku łańcucha umieszcza cię na końcu linii i dodaje średnik.

Po prostu wydaje się, że koniec jest preferowany tutaj, aby dostać się do końca linii. Możesz dodać do mapy klucza dodatkowy klucz, aby przejść do końca wiersza, jeśli inna kombinacja klawiszy działa lepiej dla ciebie, ale nie zmieni tylko jego zachowania, ponieważ jesteś w środku nawiasów.

Patrząc na opcje IDEA, wygląda na to, że zachowanie nawiasów nie jest tak naprawdę szablonem na żywo, jak automatyczne tworzenie pętli for, więc nie wypełniasz tabulacji, kiedy skończysz, a raczej automatycznie wypełniasz nawiasy dla ciebie i inteligentnie rozpoznając, że możesz chcieć pisać płynnie, jak gdyby nie.

5

Próbowałem cmd-shift-enter (na Macu) i wynik wydaje się bardziej przydatny dla mnie (w kodzie javascript). Używam potoku ('|') do wizualizacji kursor tutaj:

Przed:

var x = func1(func2(|)) 

po naciśnięciu CMD-Shift-Enter:

var x = func1(func2());| 

więc nawet dodaje średnik na końcu linii (ale nadal musisz nacisnąć enter ponownie, aby przejść do następnej linii).

EDIT

prostu znaleźć tego skrótu jest jeszcze bardziej przydatne:

przed:

if(a == b|) 

po naciśnięciu CMD-shift wprowadź:

if(a == b) { 
    | 
} 

działa zarówno w php, jak i javascript

1

Ponieważ te odpowiedzi są trochę stary, nie wiem, czy ktoś jest świadomy, że można wyjść z zamkniętego automatycznie zakończone złożył wpisując SHIFT + KEY

W Javie jeśli ciebie zrobił System.out.println ("Hello World!"); Jeśli kursor znajduje się w „”, SHIFT + " będzie Ci na zewnątrz«»i SHIFT + ) będzie Ci zewnątrz()