IntelliJ IDEA birden çok satırı düzenleme yolu


113

Bunun TextMate'te yapıldığını gördüm ve IDEA'da yapmanın bir yolu olup olmadığını merak ediyordum.

Aşağıdaki koda sahip olduğumu varsayalım:

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

Her satıra '+ "foo"' eklemenin en iyi yolu nedir? Metni sağa yaslamanın kolay bir yolu olmadıkça, çizgiler sağ tarafa doğru hizalanmadığından sütun modu çalışmayacaktır: P


Bu, o kadar nadiren yapmam gereken bir şey ki, editörümde özel bir mod olsa bile, onu nasıl kullanacağımı asla hatırlamıyorum. Sadece birkaç satır olsaydı panoyu kullanırdım (yukarıdaki gibi). Yüzlerce satır içinse, bul / değiştir gadget'ına o zaman geçerim.
Michael Burr

Sütun modunda, en solda 5 imleç oluşturun. Sonra sağa geçmek için Ctrl-Sağ Ok tuşlarını kullanın. Birden çok imleç, makro ve ara-değiştir, bunu yapmanın harika yollarıdır! Hangisini en çok sevdiğime karar veremiyorum.
Daniel Alexiuc

Macbook için Option + Shift + tıklayın. Tüm Intellij Kısayolları: docs.google.com/document/d/…
Soham Mehta

Yanıtlar:


174

Idea IntelliJ IDEA 13.1'den beri birden fazla satırı düzenleme imkanı vardır.

Kullanım:

Alt+ Shift+ Fare tıklaması

seçim için. IntelliJ blog yayınındaki bu yeni iyileştirme hakkında daha fazla bilgi burada . Çok kullanışlı bir özellik.


1
Bağlantı için teşekkürler. Yanlışlıkla bu özelliğe çarptım ama bir şekilde yanlışlıkla hangi tuş kombinasyonuna
aberrant80

12
Şubat 2015 itibariyle Alt-Shift-Ekle: Sütun Seçim Modu VEYA sadece Alt-Seç. çok güçlü ve kullanımı kolay. İnsanların OP'ye eşzamanlı satır düzenlemeyi açıkça sorarken neden "ara ve değiştir" i kullanmasını söylediğinden emin değilim - bunu sorması, arama ve değiştirmenin farkında olacak kadar akıllı olduğunu gösteriyor.
RichieHH

4
Mac için Alt + Click.
Gowtham Gopalakrishnan

5
Ve şimdilik sadece orta fare düğmesi + sürükleyin.
WesternGun

1
Macbook için Option + Shift + tıklayın. Tüm Intellij Kısayolları: docs.google.com/document/d/…
Soham Mehta

114

Kullandığım Sütun Seçim Modu ( Cmd+ Shift+ 8yoluyla çok imleçler oluşturmanızı sağlar Mac'te) Shift+ Upveya Shift+ Downhep birlikte o satırları düzenlemek.

IntelliJ IDEA 14'ten başlayarak, Üstte / Altta Klon İmleci de vardır :

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

(değiştirici tuşa ikinci basışınızı basılı tutun, ardından ok tuşuna basın)


5
Yanlışlıkla Cmd + Shift + 8 tuşlarına basmıştım ve hayatım boyunca her şeyin neden "çok hatlı" seçilebilir olduğunu anlayamadım. Komut kısayolu için teşekkürler!
Robin Jonsson

4
Çift <kbd> Ctrl </kbd>, IntelliJ Ultimate 2016.1'de benim için çalışmıyor. Çift <kbc> Option </kbd> kullanmalıyım, ikinci basımı basılı tutmalı ve ardından ok tuşlarına basmalıyım.
Big McLargeHuge

1
@DaveKennedy Kesinlikle haklısınız, Jet Brains varsayılan kısayolu değiştirdi.
Alexander Bogushov

çift ​​ctrl çözümü ellerimi klavyede tutmamı sağladığından en iyisidir
Andrejs

Anahtar eşlemeyi, kullandığınız diğer düzenleyicilerinizle gerçekten eşleşecek şekilde değiştirmek için, Ayarlar -> Tuş Eşleme'ye gidin ve sağ arama kutusunda "İmleci Klonla" yı arayın. Eylemi sağ tıklayın ve "Klavye Kısayolu Ekle" yi seçin. Kaydederse bir çatışmaya neden olur, yine de "Tamam" ı tıklayın. Ardından, diğer atamayı (muhtemelen ne istediğinizi) "Kaldırmak" mı, yoksa "Ayrılmak" mı (kasıtlı olarak iki şeyi tek bir kısayolla tetiklemek garip görünür ...) veya "İptal" (neden daha önce Tamam'a
tıkladınız

38

Başka bir yalnızca klavye yaklaşımı. Birden çok imleç oluşturmak için Alt+ J/ Shift+ Alt+ J( Ctrl+ GOS X için) kısayollarını kullanmak (13.1 sürümünden beri) mümkündür . Alt+ J, seçili metnin sonraki geçtiği yeri seçer ve başka bir düzeltme işareti ekler.

  1. İlk noktalı virgülü seçin

görüntü açıklamasını buraya girin

  1. Ardından Alt+ Jdört kez basın

görüntü açıklamasını buraya girin

  1. İstediğinizi düzenleyin

görüntü açıklamasını buraya girin

  1. Escİlk satıra dönmek için basın .

görüntü açıklamasını buraya girin


5
Tanrım, bu özellik olmadan bir yıl kadar yaşadım! Çok teşekkürler!
coffman21

27

İmleci sona yerleştir

Windows: CTRL + CTRL(Basılı tutun) +↑ / ↓

Mac: option + option(Basılı tutun) + ↑ / ↓.

İmleci satırların sonuna yerleştirmek için: İmleci üst sıraya taşıyın, aşağıya doğru kopyalayın ve tıklayın END.

Çoklu İmleç Kısayol Tuşunu Değiştir

Özel bir Keymap eklemek için CTRL+ SHIFT+ Ayazın keymapve Settingsalt metin olarak olanı tıklayın . Ara Clone Caret Aboveve Clone Caret Below.

Ben benimkini eşlenen için ALT+ SHIFT+ ↑ / ↓Windows ve + ↑ / ↓Mac'te.

Bonus

Tutma kombinasyonlar deneyin CTRL, SHIFTgeliştirilmiş seçme güç ve oklar.


1
Farklı uzunluklara sahip değişkenlere ortak atamalar yapmak için harika olan 'SON' yorumu için teşekkürler.
Keegan 82

1
Bu, en eksiksiz ve en önemli yanıt olduğu için yanıt olmalıdır. +1.
Ariel Mirra

başka bir yol da "alt" tuşunu basılı tutmak ve "j" tuşuna basmaya devam etmektir, çok satırlı seçime satır eklemeye devam edecektir.
Gaurav

13

Sütun modu gayet iyi çalışıyor: önce sütun modunda tüm satırları seçin, ardından END'e basın: her imleç ilgili satırın sonuna atlayacaktır.

Linux'ta ( FARE GEREKMEZ ):

  1. ALT+ SHIFT+ INSERTblok moduna girmek için

    sütun düzenleme moduna girildi

  2. SHIFT + UPveya SHIFT + DOWNbirden çok hat seçmek için

    görüntü açıklamasını buraya girin

  3. END her satırın sonuna atlamak

    görüntü açıklamasını buraya girin

  4. şimdi yazın foo, her satıra ekleyecektir:

    görüntü açıklamasını buraya girin

  5. Şimdi ile her şeyin seçimini kaldırın ESCAPEve ile normal seçim moduna geri dönün ALT + SHIFT + INSERT.


9

Ayrıca, dikey bir kod bloğu seçimini yapabileceği tıklayarak fare tekerleği ve sürükleyerek :

görüntü açıklamasını buraya girin


8

Sonraki Olayı Seçin:

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

Olay Seçimini Kaldır:

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

Tüm Olayları Seçin:

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

daha fazla referans için: bağlantı


Önemli olan (left) Alt + J, önce kodu seçmeniz gerektiğidir.
ALIZEYN

7

Makroları bu tür şeyler için kullanıyorum. Makroyu kaydetmeye başlıyorum, bir kez yapıyorum, ardından makroyu değiştirmek istediğim her satırda oynatıyorum. Makro kayıt / oynatma özelliği ile ne kadar süslü olabileceğinize şaşıracaksınız.


Makroları atmak, bu tür değişiklikleri yapmak için çok kullanışlı olabilir. Bunu nasıl tanımladığınız, bu değişiklikleri Zeus editörü içinde yapsaydım tam olarak ne yapardım.
jussij

Satırların hepsi bu şekilde gruplanmışsa, imleci bir sonraki satıra da taşımak için makroyu kaydedin, o zaman makroyu ilk satırda çalıştırmaya başlamanız ve istediğiniz kadar tekrar etmeniz gerekir.
weiji

Nasıl "istediğiniz kadar tekrar edebileceğinizi" kastediyorsunuz? Bir makroyu otomatik olarak tekrar etmenin bir yolu var mı?
pypmannetjies

Düzenle-> Makrolar-> Son Makroyu Oynat. Bunu F12 ile eşleştirdim, ancak standart olmayan bir anahtar bağlamam var. Makroyu bir kez yapıyorum ve F12'yi defalarca vurmaya başlıyorum.
Chris Kessel

makrolar iyidir, ancak ideavim'i intellij'de kullanırsam, makrolar vim kısayolunu çözemez
Amitābha

5

Öğrenmem biraz zaman aldı, ancak bir Mac'te iki Optionkez basabilir (bir kez basabilir, bırakabilir, tekrar basabilir, basılı tutabilir) ve Up/ Downtuşlarını kullanarak istediğiniz gibi imleçler oluşturmak / kaldırmak için kullanabilirsiniz .

Ayrıca , belirli noktalarda düzeltme işareti oluşturmak / kaldırmak için Shift+ tuşunu basılı tutabilir Optionve tıklayabilirsiniz.


Bu harika ama bunu yapmanın ve dosyanın sonuna kadar seçim yapmanın bir yolu var mı? Aksi takdirde, oku kullanarak her şeyi kaydırmalıyım ve bazı büyük dosyalarımız var.
Jackie


3

Bu durumda, bunu yapmak istediğiniz kod parçasını da seçebilir ve üzerinde bir değişiklik yapabilirsiniz. Değiştir:

";

ile:

" + "foo";

Bu yüzden bilmediğiniz durumda: Bir değiştirme işlemi yaparken (Ctrl + R veya Cmd + R) metin seçtiyseniz, bu yalnızca seçilen metin parçası için geçerli olacaktır.


2

ALT tuşunu basılı tutun ve fareyi tıklama ve sürükleme için kullanın




1

Daha yeni sürümler için şunu kullanın: Alt+ Shift+Insert


1
kusursuz çalışıyor! teşekkürler @Meysam
Gaurav

başka bir yol da "alt" tuşunu basılı tutmak ve "j" tuşuna basmaya devam etmektir, çok satırlı seçime satır eklemeye devam edecektir.
Gaurav

0

Genellikle kullandığım şey (NetBeans, ancak herhangi bir IDE'de kullanımının basit olduğuna inanıyorum) find&replace.

Sadece bulup ;\ndeğiştirin, + $foo;\nsonra TÜM satırlara uygulanmazsınız, ancak imleci ilk satıra yerleştirirsiniz ve "değiştir" düğmesine (sanırım IDE'nize bağlıdır) 7 kez basarak 7 satırı hiçbir zaman değiştiremezsiniz. Kolay ve basit ve bulabileceğiniz en temel ve en gelişmiş IDE ile yapılmalıdır.

DÜZENLEME: IntelliJ'de (diğer IDE'lerde de çalışıp çalışmadığını bilmiyorum) regexp arama ve değiştirme işlevinizi yalnızca seçim için kullanabilirsiniz, böylece gerçekten "tümünü değiştir" seçeneğini kullanabilirsiniz


Genellikle bu yöntemi uygulayamayacağınız, satırların tamamen farklı olduğu veya başka bir şey olduğu durumlar vardır, ancak bu durumlarda gelişmiş yöntemlerle bile yapabileceğiniz pek bir şey olmadığını düşünüyorum.
Srneczek

Peki neden -1? Sorduğu soruyu cevapladım. -1 soru doğru cevap değil, aptal olduğunu düşünürseniz. Makro ile kabul edilen cevap, bence dürüst olmak gerekirse daha yavaş bir yöntem.
Srneczek


0

Yukarıdaki cevapların tümü harika, ancak satırların sonunda çok satırlı düzenleme istiyorsanız, çok satırlı seçiminiz etkinken "Bitir" tuşuna basmanız gerekir.

Mac için komut sırası şöyle olacaktır:

shift option click # bir dizi çizgi seçin

command right arrow # satırların sonuna git

Bu, satırın sonunda çok satırlı seçim yapacaktır ve bunu gerektiği gibi düzenleyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.