IntelliJ IDEA cara mengedit beberapa baris

113

Saya telah melihat ini dilakukan di TextMate dan saya bertanya-tanya apakah ada cara untuk melakukannya di IDEA.

Katakanlah saya memiliki kode berikut:

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

Apa cara terbaik untuk menambahkan '+ "foo"' ke setiap baris? Mode kolom tidak berfungsi karena garis tidak sejajar dengan benar di sisi kanan ... kecuali ada cara mudah untuk meratakan teks ke kanan: P

hdx
sumber
Ini adalah sesuatu yang sangat jarang saya lakukan sehingga meskipun ada mode khusus di editor saya, saya tidak akan pernah ingat bagaimana menggunakannya. Saya hanya akan menggunakan clipboard jika hanya untuk beberapa baris (seperti di atas). Jika karena ratusan baris, saat itulah saya akan pindah ke gadget cari / ganti.
Michael Burr
Dalam mode kolom, buat 5 kursor di paling kiri. Kemudian gunakan Ctrl-RightArrow untuk beralih ke kanan. Beberapa kursor, makro, dan cari-ganti adalah cara luar biasa untuk menyelesaikannya! Saya tidak bisa memutuskan mana yang paling saya suka.
Daniel Alexiuc
Opsi + Shift + Klik untuk Macbook. Semua Pintasan Intellij: docs.google.com/document/d/…
Soham Mehta

Jawaban:

174

Sejak Idea IntelliJ IDEA 13.1 ada kemungkinan untuk mengedit beberapa baris.

Menggunakan:

Alt+ Shift+ Klik mouse

untuk seleksi. Selengkapnya tentang peningkatan baru ini di posting blog IntelliJ di sini . Fitur yang sangat berguna.

shobull
sumber
1
Terima kasih untuk tautannya. Saya tidak sengaja menemukan fitur ini tetapi entah bagaimana saya tidak tahu kombinasi tombol mana yang tidak sengaja saya tekan :)
aberrant80
12
Mulai Feb 2015 Alt-Shift-Insert: Column Selection Mode ATAU cukup Alt-Select. sangat kuat dan mudah digunakan. Saya tidak yakin mengapa orang terus mengatakan kepada OP untuk menggunakan "cari dan ganti" ketika dia dengan jelas menanyakan tentang pengeditan baris secara bersamaan - fakta yang dia tanyakan menunjukkan bahwa dia cukup pintar untuk waspada terhadap pencarian dan penggantian.
RichieHH
4
Untuk Mac, Alt + Klik.
Gowtham Gopalakrishnan
5
Dan untuk saat ini, cukup tombol tengah mouse + seret.
WesternGun
1
Opsi + Shift + Klik untuk Macbook. Semua Pintasan Intellij: docs.google.com/document/d/…
Soham Mehta
114

Saya menggunakan Mode Pemilihan Kolom ( Cmd+ Shift+ 8di Mac) yang memungkinkan untuk membuat beberapa kursor melalui Shift+ Upatau Shift+ Downkemudian mengedit semua baris bersama-sama.

Mulai dari IntelliJ IDEA 14 ada juga Clone Caret Atas / Bawah :

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

(tahan tekan kedua tombol pengubah, lalu tekan tombol panah)

Alexander Bogushov
sumber
5
Saya tidak sengaja menekan Cmd + Shift + 8 dan tidak bisa seumur hidup saya memikirkan mengapa sih semuanya "multi line" dapat dipilih. Terima kasih untuk pintasan perintahnya!
Robin Jonsson
4
<kbd> Ctrl </kbd> ganda tidak berfungsi untuk saya di IntelliJ Ultimate 2016.1. Saya harus menggunakan <kbc> Option </kbd> ganda, tahan tekan kedua, lalu tekan tombol panah.
Big McLargeHuge
1
@DaveKennedy Anda benar, Jet Brains telah mengubah pintasan default.
Alexander Bogushov
solusi ctrl ganda adalah yang terbaik karena memungkinkan saya tetap menggunakan keyboard
Andrejs
Untuk mengubah pemetaan kunci agar benar-benar cocok dengan editor lain yang Anda gunakan, masuk ke Settings -> Keymap, dan di kotak pencarian kanan cari "Clone Caret". Klik kanan tindakan tersebut dan pilih "Tambahkan Pintasan Keyboard". Jika menyimpannya menyebabkan konflik, klik "OK". Kemudian akan menambahkan prompt lain yang menanyakan apakah Anda ingin "Menghapus" tugas lain (mungkin yang Anda inginkan), atau "Keluar" (dengan sengaja memicu dua hal dengan satu pintasan tampak aneh ...) atau "Batal" (mengapa apakah Anda mengklik OK sebelumnya?)
ArtOfWarfare
38

Pendekatan hanya keyboard lainnya. Dimungkinkan (sejak versi 13.1) untuk menggunakan Alt+ J/ Shift+ Alt+ J( Ctrl+ Guntuk OS X) pintasan untuk membuat beberapa tanda sisipan. Alt+ Jmemilih kemunculan berikutnya dari teks yang saat ini dipilih dan menambahkan tanda sisipan lainnya.

  1. Pilih titik koma pertama

masukkan deskripsi gambar di sini

  1. Lalu tekan Alt+ Jempat kali

masukkan deskripsi gambar di sini

  1. Edit apa yang Anda inginkan

masukkan deskripsi gambar di sini

  1. Tekan Escuntuk kembali ke baris pertama.

masukkan deskripsi gambar di sini

Lembah
sumber
5
Ya Tuhan, saya hidup tanpa fitur ini selama setahun! Terima kasih banyak!
coffman 21
27

Tempatkan tanda sisipan di ujung

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

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

Untuk menempatkan tanda sisipan di akhir baris: pindahkan tanda sisipan ke baris atas, klon ke bawah, dan klik END.

Ubah Hotkey Multi-caret

Untuk menambahkan Peta Kunci khusus, CTRL+ SHIFT+ A, ketik keymapdan klik salah satu dengan Settingssebagai subteks. Telusuri Clone Caret Abovedan Clone Caret Below.

Saya memetakan milik saya ke ALT+ SHIFT+ ↑ / ↓di Windows dan + ↑ / ↓di Mac.

Bonus

Coba memegang kombinasi CTRL, SHIFTdan panah untuk meningkatkan daya seleksi.

Gibolt
sumber
1
Terima kasih untuk komentar 'SELESAI', bagus untuk tugas umum ke dalam variabel dengan panjang berbeda.
Keegan 82
1
Ini harus menjadi jawaban karena ini adalah tanggapan yang paling lengkap dan langsung ke sasaran. +1.
Ariel Mirra
Cara lain adalah dengan menahan "alt" dan terus menekan "j", ini akan terus menambahkan garis ke pemilihan multi-garis.
gaurav
13

Mode kolom berfungsi dengan baik: pertama-tama pilih semua baris dalam mode kolom, lalu tekan END: setiap kursor akan melompat ke akhir baris masing-masing.

Di Linux ( TIDAK PERLU MOUSE ):

  1. ALT+ SHIFT+ INSERTuntuk masuk ke mode blok

    memasuki mode edit kolom

  2. SHIFT + UPatau SHIFT + DOWNuntuk memilih beberapa baris

    masukkan deskripsi gambar di sini

  3. END untuk melompat ke akhir setiap baris

    masukkan deskripsi gambar di sini

  4. sekarang ketik foo, itu akan menambahkannya ke setiap baris:

    masukkan deskripsi gambar di sini

  5. Sekarang batalkan pilihan semuanya dengan ESCAPEdan alihkan kembali ke mode pemilihan normal dengan ALT + SHIFT + INSERT.

Andrey Tyukin
sumber
9

Anda juga dapat melakukan pemilihan blok kode vertikal dengan mengklik roda mouse dan menyeret :

masukkan deskripsi gambar di sini

DimaSan
sumber
8

Pilih Kejadian Berikutnya:

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

Batalkan pilihan Kejadian:

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

Pilih Semua Kejadian:

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

untuk referensi lebih lanjut: tautan

Snehal Parmar
sumber
Intinya (left) Alt + Jadalah Anda harus memilih kode terlebih dahulu.
ALIZEYN
7

Saya hanya menggunakan makro untuk hal semacam ini. Saya mulai merekam makro, melakukannya sekali, lalu memutar makro pada setiap baris yang ingin saya ubah. Anda akan kagum pada betapa mewahnya yang bisa Anda dapatkan dengan fitur perekaman / pemutaran makro.

Chris Kessel
sumber
Makro yang dibuang bisa sangat berguna untuk melakukan perubahan semacam ini. Bagaimana Anda mendeskripsikannya persis seperti yang akan saya lakukan jika saya membuat perubahan ini di dalam editor Zeus.
jussij
Jika semua garis dikelompokkan bersama seperti itu, lalu rekam makro untuk juga memindahkan kursor ke baris berikutnya, lalu Anda hanya perlu mulai menjalankan makro pada baris pertama dan mengulangi berapa kali yang Anda inginkan.
weiji
Bagaimana maksud Anda bahwa Anda dapat "mengulang sebanyak yang Anda inginkan"? Apakah ada cara untuk mengulang makro secara otomatis?
pypmannetjies
Edit-> Makro-> Putar Ulang Makro Terakhir. Saya memetakannya ke F12, tetapi saya memiliki pengikatan kunci non-standar. Saya melakukan makro sekali dan mulai memukul F12 berulang kali.
Chris Kessel
makro itu bagus, tetapi jika saya menggunakan ideavim di intellij, makro tidak dapat menyelesaikan pintasan vim
Amitābha
5

Saya butuh beberapa saat untuk mengetahuinya, tetapi di Mac Anda dapat menekan dua kali Option(tekan sekali, lepaskan, tekan lagi, terus tekan) dan gunakan tombol Up/ Downuntuk membuat / menghapus tanda sisipan sesuai keinginan.

Anda juga dapat menahan Shift+ Optiondan mengklik untuk membuat / menghapus tanda sisipan di titik tertentu.

Rafael Eyng
sumber
Ini bagus, tetapi apakah ada cara untuk melakukan ini dan memilih hingga akhir file? Kalau tidak, saya harus menelusuri semuanya menggunakan panah dan kami memiliki beberapa file besar.
Jackie
4

ALT + CTRL + SHIFT + KLIK di linux

Metanerd
sumber
3

Dalam hal ini Anda juga dapat memilih bagian kode yang ingin Anda lakukan ini dan melakukan penggantinya. Ganti:

";

dengan:

" + "foo";

Jadi jika Anda tidak tahu: Jika Anda memiliki teks yang dipilih saat Anda melakukan penggantian (Ctrl + R atau Cmd + R), itu hanya akan berlaku untuk bagian teks yang dipilih.

Tom van Zummeren
sumber
2

Tahan ALT dan gunakan mouse untuk klik dan seret

Davijr
sumber
1

Untuk Mac:

Option + Shift + Click & Drag
Erick Aky
sumber
1

Untuk versi yang lebih baru gunakan: Alt+ Shift+Insert

Meysam Sadeghi
sumber
1
bekerja dengan sempurna! terima kasih @Meysam
gaurav
Cara lain adalah dengan menahan "alt" dan terus menekan "j", ini akan terus menambahkan garis ke pemilihan multi-garis.
gaurav
0

Apa yang biasanya saya gunakan (NetBeans, tapi saya yakin ini mudah digunakan dalam IDE apa pun) find&replace.

Anda hanya perlu mencari ;\ndan menggantinya dengan + $foo;\nkemudian Anda tidak berlaku untuk SEMUA baris tetapi Anda menempatkan kursor pada baris pertama dan Anda hanya menekan tombol "ganti" (tergantung pada IDE Anda, saya kira) 7 kali untuk mengubah 7 baris dalam waktu singkat. Mudah dan sederhana dan harus dilakukan dengan IDE paling dasar dan paling canggih yang dapat Anda temukan.

EDIT: Di IntelliJ (tidak tahu apakah ini juga berfungsi di IDE lain), Anda dapat menggunakan pencarian regexp & mengganti ke pilihan hanya sehingga Anda benar-benar dapat menggunakan "ganti semua"

Srneczek
sumber
Tentu saja ada kasus di mana Anda tidak dapat menerapkan metode ini, ketika garis benar-benar berbeda atau semacamnya, tetapi saya pikir tidak banyak yang dapat Anda lakukan tentang situasi ini bahkan dengan metode lanjutan.
Srneczek
Jadi kenapa -1? Saya menjawab pertanyaan yang dia tanyakan. -1 pertanyaan jika menurut Anda itu bodoh, bukan jawaban yang benar. Jawaban yang diterima dengan makro menurut saya metode yang lebih lambat sejujurnya.
Srneczek
0

Untuk pengguna mac itu: ALT + SHIFT + Click

K-Marouane
sumber
0

Semua jawaban di atas bagus, tetapi jika Anda ingin mengedit multiline di akhir baris, maka Anda harus menekan tombol "End" saat pilihan multiline Anda aktif.

Untuk Mac Urutan perintahnya adalah:

shift option click # pilih satu set garis

command right arrow # pergi ke akhir baris

Ini akan melakukan pemilihan multiline di akhir baris dan Anda dapat mengeditnya sesuai kebutuhan

sanjaykumar81
sumber