IntelliJ IDEA sposób edycji wielu linii

113

Widziałem to zrobione w TextMate i zastanawiałem się, czy jest na to sposób w IDEA.

Powiedz, że mam następujący kod:

 leaseLabel = "Lease";
 leaseLabelPlural = "Leases";
 portfolioLabel = "Portfolio";
 portfolioLabelPlural = "Portfolios";
 buildingLabel = "Building";

Jaki jest najlepszy sposób dodania „+„ foo ”” do każdej linii? Tryb kolumnowy nie będzie działał, ponieważ wiersze nie są poprawnie wyrównane po prawej stronie ... chyba że istnieje łatwy sposób na wyrównanie tekstu do prawej: P

hdx
źródło
To jest coś, co muszę robić tak rzadko, że nawet jeśli w moim edytorze był specjalny tryb, nigdy bym nie pamiętał, jak go używać. Po prostu użyłbym schowka, gdyby był tylko dla kilku wierszy (jak powyżej). Jeśli chodzi o setki wierszy, przechodzę do gadżetu znajdź / zamień.
Michael Burr,
W trybie kolumnowym utwórz 5 kursorów po lewej stronie. Następnie użyj Ctrl-RightArrow, aby przejść w prawo. Wiele kursorów, makr i zamiana wyszukiwania to niesamowite sposoby na zrobienie tego! Nie mogę się zdecydować, który najbardziej mi się podoba.
Daniel Alexiuc
Jego opcja + Shift + kliknięcie dla Macbooka. Wszystkie skróty Intellij: docs.google.com/document/d/…
Soham Mehta

Odpowiedzi:

174

Od Idea IntelliJ IDEA 13.1 istnieje możliwość edycji wielu linii.

Posługiwać się:

Alt+ Shift+ Kliknięcie myszą

do wyboru. Więcej o tym nowym ulepszeniu w poście IntelliJ tutaj . Bardzo przydatna funkcja.

shobull
źródło
1
Dzięki za link. Przypadkowo trafiłem na tę funkcję, ale jakoś nie mogłem dowiedzieć się, którą kombinację klawiszy przypadkowo nacisnąłem :)
aberrant80
12
Od lutego 2015 r. Alt-Shift-Insert: Tryb wyboru kolumny LUB po prostu Alt-Select. bardzo wydajny i łatwy w użyciu. Nie jestem pewien, dlaczego ludzie wciąż mówią OP, aby używał „wyszukaj i zamień”, kiedy wyraźnie pyta o jednoczesną edycję wiersza - fakt, o który pyta, sugeruje, że jest wystarczająco inteligentny, aby być świadomym wyszukiwania i zastępowania.
RichieHH
4
W przypadku komputerów Mac jest to Alt + Click.
Gowtham Gopalakrishnan
5
Na razie wystarczy środkowy przycisk myszy i przeciągnięcie.
WesternGun
1
Jego opcja + Shift + kliknięcie dla Macbooka. Wszystkie skróty Intellij: docs.google.com/document/d/ ...
Soham Mehta
114

Używam trybu zaznaczania kolumn ( Cmd+ Shift+ 8na Macu), który pozwala tworzyć wiele kursorów za pomocą Shift+ Uplub Shift+, Downa następnie edytować wszystkie linie razem.

Począwszy od IntelliJ IDEA 14 jest również Clone Caret powyżej / poniżej :

  • Okna Ctrl, Ctrl+ Up/Down
  • MacOS: Option, Option+ Up/Down

(przytrzymaj drugie naciśnięcie klawisza modyfikującego, a następnie naciśnij klawisz strzałki)

Aleksandra Boguszowa
źródło
5
Przypadkowo nacisnąłem Cmd + Shift + 8 i nie mogłem przez całe życie dowiedzieć się, dlaczego do cholery wszystko było do wyboru w trybie „wielu linii”. Dzięki za skrót polecenia!
Robin Jonsson,
4
Podwójny <kbd> Ctrl </kbd> nie działa dla mnie na IntelliJ Ultimate 2016.1. Muszę użyć podwójnej opcji <kbc> Option </kbd>, przytrzymać drugie naciśnięcie, a następnie nacisnąć klawisze strzałek.
Big McLargeHuge
1
@DaveKennedy Masz całkowitą rację, Jet Brains zmienił domyślny skrót.
Alexander Bogushov
rozwiązanie z podwójnym ctrl jest najlepsze, ponieważ pozwala trzymać ręce na klawiaturze
Andrejs
Aby zmienić mapowanie klawiszy tak, aby faktycznie pasowało do któregokolwiek z innych używanych edytorów, przejdź do Ustawienia -> Mapa klawiszy i w prawym polu wyszukiwania wyszukaj „Clone Caret”. Kliknij akcję prawym przyciskiem myszy i wybierz „Dodaj skrót klawiaturowy”. Jeśli zapisze, powoduje konflikt, i tak kliknij „OK”. Następnie doda kolejny monit z pytaniem, czy chcesz „Usuń” inne przypisanie (prawdopodobnie tego, co chcesz), czy „Zostaw” (celowe wywołanie dwóch rzeczy jednym skrótem wydaje się dziwne ...) lub „Anuluj” (dlaczego czy
kliknąłeś
38

Inne podejście oparte tylko na klawiaturze. Możliwe jest (od wersji 13.1) użycie skrótów Alt+ J/ Shift+ Alt+ J( Ctrl+ Gdla OS X) do tworzenia wielu daszków. Alt+J zaznacza następne wystąpienie aktualnie zaznaczonego tekstu i dodaje kolejny daszek.

  1. Wybierz pierwszy średnik

wprowadź opis obrazu tutaj

  1. Następnie naciśnij czterokrotnie Alt+J

wprowadź opis obrazu tutaj

  1. Edytuj, co chcesz

wprowadź opis obrazu tutaj

  1. Naciśnij, Escaby powrócić do pierwszego wiersza.

wprowadź opis obrazu tutaj

Dołek
źródło
5
Boże, żyłem bez tej funkcji przez rok! Wielkie dzięki!
coffman21
27

Umieść daszek na końcu

Windows: CTRL + CTRL(przytrzymaj) +↑ / ↓

Mac: option + option(przytrzymaj) + ↑ / ↓.

Aby umieścić daszek na końcu rzędów: przesuń daszek do górnego rzędu, sklonuj w dół i kliknij END.

Zmień klawisz skrótu z wieloma daszkami

Aby dodać niestandardową mapę klawiszy, CTRL+ SHIFT+ A, wpisz keymapi kliknij tę z Settingspodtekstem. Wyszukaj Clone Caret Abovei Clone Caret Below.

Zmapowałem mój na ALT+ SHIFT+ ↑ / ↓w systemie Windows i + ↑ / ↓na komputerze Mac.

Premia

Spróbuj trzymając kombinacje CTRL, SHIFTi strzałami w celu poprawy siły selekcyjnej.

Gibolt
źródło
1
Dzięki za komentarz „END”, świetny do typowych przypisań do zmiennych o różnych długościach.
Keegan 82
1
To powinna być odpowiedź, ponieważ jest to najbardziej kompletna i konkretna odpowiedź. +1.
Ariel Mirra
Innym sposobem jest przytrzymanie „alt” i przytrzymanie klawisza „j”, co spowoduje dalsze dodawanie wierszy do zaznaczenia wielu linii.
gaurav
13

Tryb kolumnowy działa dobrze: najpierw wybierz wszystkie wiersze w trybie kolumnowym, a następnie naciśnij END: każdy kursor przeskoczy na koniec odpowiedniego wiersza.

W systemie Linux ( NIE POTRZEBUJESZ MYSZY ):

  1. ALT+ SHIFT+, INSERTaby wejść w tryb blokowy

    wszedł w tryb edycji kolumny

  2. SHIFT + UPlub SHIFT + DOWNaby wybrać wiele linii

    wprowadź opis obrazu tutaj

  3. END przeskoczyć na koniec każdego wiersza

    wprowadź opis obrazu tutaj

  4. teraz wpisz foo, doda go do każdej linii:

    wprowadź opis obrazu tutaj

  5. Teraz odznacz wszystko za pomocą ESCAPEi wróć do normalnego trybu zaznaczania za pomocą ALT + SHIFT + INSERT.

Andrey Tyukin
źródło
9

Możesz także dokonać wyboru pionowego bloku kodu, klikając kółkiem myszy i przeciągając :

wprowadź opis obrazu tutaj

DimaSan
źródło
8

Wybierz następne wystąpienie:

      Alt+J on Windows, Ctrl-G on Mac OS X

Odznacz wystąpienie:

      Alt+Shift+J on Windows, Ctrl-Shift-G on Mac OS X

Wybierz wszystkie wystąpienia:

      Ctrl+Alt+Shift+J on Windows, Ctrl-Cmd-G on Mac OS X

więcej informacji: link

Snehal Parmar
źródło
Chodzi o (left) Alt + Jto, że musisz najpierw wybrać kod.
ALIZEYN
7

Po prostu używam makr do tego typu rzeczy. Rozpoczynam nagrywanie makra, robię to raz, a następnie odtwarzam makro w każdej linii, którą chcę zmodyfikować. Zdziwiłbyś się, jak fantazyjną można uzyskać dzięki funkcji nagrywania / odtwarzania makr.

Chris Kessel
źródło
Wyrzucenie makr może być bardzo przydatne w przypadku tego rodzaju zmian. Jak opisujesz, dokładnie to bym zrobił, gdybym wprowadzał te zmiany w edytorze Zeusa.
jussij
Jeśli wszystkie wiersze są zgrupowane w ten sposób, nagraj makro, aby również przesunąć kursor do następnego wiersza, a następnie wystarczy uruchomić makro w pierwszym wierszu i powtórzyć tyle razy, ile chcesz.
weiji
Co masz na myśli, że możesz „powtarzać tyle razy, ile chcesz”? Czy istnieje sposób na automatyczne powtórzenie makra?
pypmannetjies
Edycja-> Makra-> Odtwórz ostatnie makro. Mam to mapowane na F12, ale mam niestandardowe powiązanie klawiszy. Robię makro raz i zaczynam walić w F12 w kółko.
Chris Kessel
makra są dobre, ale jeśli używam ideavim na intellij, makra nie mogą rozwiązać skrótu do vima
Amitābha Kwietnia
5

Zajęło mi to trochę czasu, zanim się dowiedziałem, ale na Macu możesz dwukrotnie nacisnąć Option(naciśnij raz, zwolnij, naciśnij ponownie, trzymaj wciśnięty) i użyj klawiszy Up/ Down, aby utworzyć / usunąć daszki, jak chcesz.

Możesz także przytrzymać Shift+ Optioni kliknąć, aby utworzyć / usunąć daszki w określonych punktach.

Rafael Eyng
źródło
To jest świetne, ale czy istnieje sposób, aby to zrobić i zaznaczyć całą drogę do końca pliku? W przeciwnym razie muszę przewinąć całość za pomocą strzałki i mamy kilka ogromnych plików.
Jackie
4

ALT + CTRL + SHIFT + KLIKNIJ w systemie Linux

metanerd
źródło
3

W takim przypadku możesz również po prostu wybrać fragment kodu, w którym chcesz to zrobić, i wykonać na nim zamianę. Zastąp:

";

z:

" + "foo";

Tak więc w przypadku, gdy nie wiedziałeś: Jeśli zaznaczyłeś tekst podczas wykonywania zamiany (Ctrl + R lub Cmd + R), zostanie to zastosowane tylko do zaznaczonego fragmentu tekstu.

Tom van Zummeren
źródło
2

Przytrzymaj ALT i użyj myszy do klikania i przeciągania

Davijr
źródło
1

Dla Maca:

Option + Shift + Click & Drag
Erick Aky
źródło
1

W przypadku nowszych wersji użyj: Alt+ Shift+Insert

Meysam Sadeghi
źródło
1
działa bez zarzutu! dzięki @Meysam
gaurav
Innym sposobem jest przytrzymanie „alt” i przytrzymanie klawisza „j”, co spowoduje dalsze dodawanie wierszy do zaznaczenia wielu linii.
gaurav
0

Zwykle używam (NetBeans, ale uważam, że jest prosty w użyciu w każdym IDE) find&replace.

Po prostu znajdź ;\ni zamień go na, a + $foo;\nnastępnie nie stosujesz się do WSZYSTKICH linii, ale umieszczasz kursor w pierwszej linii i po prostu wciskasz przycisk "zamień" (przypuszczam, że zależy od twojego IDE) 7 razy, aby zmienić 7 linii w mgnieniu oka. Łatwe i proste i powinno być zrobione z najbardziej podstawowym i najbardziej zaawansowanym IDE, jakie możesz znaleźć.

EDYCJA: W IntelliJ (nie wiem, czy to działa również w innych IDE) możesz użyć wyszukiwania i zamiany wyrażenia regularnego tylko na zaznaczenie, aby faktycznie użyć opcji „zamień wszystko”

Srneczek
źródło
Często zdarzają się przypadki, w których nie można zastosować tej metody, kiedy linie są zupełnie inne lub coś w tym rodzaju, ale myślę, że niewiele można z tym zrobić, nawet stosując zaawansowane metody.
Srneczek
Więc dlaczego -1? Odpowiedziałem na zadane przez niego pytanie. -1 pytanie, jeśli uważasz, że to głupie, a nie poprawna odpowiedź. Zaakceptowana odpowiedź z makro jest moim zdaniem wolniejszą metodą, szczerze mówiąc.
Srneczek
0

Dla użytkowników komputerów Mac jest to: ALT + SHIFT + Click

K-Marouane
źródło
0

Wszystkie powyższe odpowiedzi są świetne, ale jeśli chcesz edytować multilinię na końcu linii, naciśnij klawisz „End”, gdy aktywny jest wybór multilinii.

Sekwencja poleceń dla komputerów Mac będzie wyglądać następująco:

shift option click # wybierz zestaw linii

command right arrow # przejdź do końca linii

Spowoduje to wybranie multilinii na końcu linii i możesz ją edytować zgodnie z wymaganiami

sanjaykumar81
źródło