Saya baru-baru ini belajar tentang multiple-cursors
, dan sepertinya paket yang sangat berguna. Saya membaca dokumentasi pada repo asli , tetapi perintahnya masih terlihat agak tidak jelas bagi saya.
Saya kemudian menonton video di Emacs Rocks !, dan videonya bagus, tetapi sebagian besar berfokus pada apa multiple-cursors
yang mampu dilakukan, bukan pada bagaimana melakukannya.
Adakah walk-through, tutorial, atau contoh yang menggambarkan fungsi dasarnya?
multiple-cursors
Amelio Vazquez-Reina
sumber
sumber
multiple-cursors
sangat cepat hanya dengan membaca file README. Rekomendasi saya adalah belajar sajamc/mark-next-like-this
. Cobalah, dan kenali apa yang dilakukannya. Dari sana merujuk kembali ke README setiap kali Anda memiliki pertanyaan yang dimulai dengan "Saya ingin tahu apakah banyak kursor dapat melakukan ..." Semua itu mengatakan, saya pikir itu pengantar yang lebih mendasar daripada Emacs Rocks! video akan sangat membantu bagi pemula.Jawaban:
Selain penggunaan @bastibe menjelaskan, saya menggunakan beberapa kursor untuk menambah atau menghapus teks dari awal / akhir sekelompok baris:
set-rectangular-region-anchor
(terikat pada tombol apa pun yang Anda suka, saya pikir saran dari Magnars adalah H-space, jika Anda memiliki kunci hiper)C-n
danC-p
) sampai Anda memiliki kursor pada setiap baris yang ingin Anda editC-e
) untuk membuat perubahan di sana.Anda dapat menggunakan
forward-word
,forward sentence
dll untuk bergerak bolak-balik di sepanjang baris, yang memungkinkan Anda untuk mengedit kata keempat di setiap baris, bahkan jika teks pada setiap baris tidak identik.Sebagai contoh, saya melakukan pekerjaan semacam ini sepanjang waktu:
C-u M-!ls / test-dat / pp5 / * fsaRETURN
Ini memasukkan isi direktori pp5 ke buffer. Saya menempatkan poin
!
pada awal daftar:→
→
→
→
Dan voila, Anda telah mengonversi daftar file ke dalam kode untuk membaca daftar itu. Sebenarnya jauh lebih sulit untuk digambarkan daripada benar-benar melakukannya!
sumber
multiple-cursors
dapat membuat kombinasi yang sangat kuat.phi-search
bisa lebih kuat daripada menavigasi dengan perintah sepertiM-f (x3)
phi-search
, itu terlihat hebat!Saya pada dasarnya memiliki dua kasus penggunaan yang sering untuk
multiple-cursors
:mc/mark-next-like-this
danmc/mark-previous-like-this
untuk menandai lebih banyak instance. Saya kemudian segera menekan C-wuntuk menghapus setiap contoh, dan menulis string baru sebagai gantinya. Saya sering menggunakan ini untuk mengubah nama variabel dalam kode.mc/edit-lines
untuk mendapatkan satu kursor per baris. Anda sekarang dapat menggunakan perintah pengeditan reguler yang beroperasi pada setiap kursor ini.Kasus penggunaan pertama sangat berguna dengan
expand-region
. Sayaer/expand-region
terikat pada C-j, danmc/mark-next-like-this
danmc/mark-previous-like-this
ke C->dan C-<. Dengan itu, saya dapat dengan mudah memilih titik kata aktif, dan menandai kemunculan kata berikutnya / sebelumnya secara instan.Kasus penggunaan kedua menggantikan sebagian besar penggunaan makro untuk saya. Alih-alih merekam makro, dan kemudian menerapkannya di beberapa tempat, saya akan menempatkan kursor di setiap tempat, dan hanya melakukan operasi di semua tempat sekaligus.
sumber
multiple-cursors
rekomendasikan untuk egmark-next-like-this
&mark-previous-like-this
?C->
danC-<
untukmark-next-like-this
danmark-previous-like-this
.Saya ingin menambahkan beberapa tambahan yang terkadang saya gunakan
multiple-cursors
.Saya menemukan yang berikut ini berguna:
iy-go-to-char
Terkadang, Anda merasa perlu berpindah ke pembatas
#
berikutnya,
atau berikutnya atau tertentu. Ini sangat berguna ketika Anda perlu berpindah ke sejumlah kata yang berbeda untuk setiap kursor. Ini menyediakan fungsiiy-go-to-char
daniy-go-to-char-backward
, yang dapat Anda ikat dan gunakan dengan baik.memperluas wilayah
Ini sangat berguna untuk alasan yang mirip dengan
iy
- ketika Anda memiliki garis yang sedikit berbeda di bawah setiap kursor, dan Anda mungkin ingin memilih string yang dikutip di bawah titik atau serupa.barang-barang khusus
Ini adalah hal-hal yang hanya perlu di konfigurasi saya, tetapi saya menemukan berguna. Mungkin tidak ditulis oleh saya.
Anjuran untuk input
Saya mendapatkan yang ini dari Magnars sebagai tanggapan atas permintaan untuk meletakkan string yang berbeda di bawah setiap kursor. Kode ini sederhana, tetapi mengikatnya dengan sesuatu dan menggunakan banyak kursor adalah cara praktis untuk memasukkan barang yang sedikit berbeda di setiap tempat.
Angka
kenaikan pada titik Ini berasal dari SO, atau emacswiki. Tidak yakin yang mana. Ini cukup berguna dengan sendirinya, dan juga ketika digunakan bersama
mc/insert-numbers
eval-and-replace
Ini sangat kuat, dan memungkinkan beberapa bit 'n' yang sangat berguna. Ini mengevaluasi apa pun sexp yang ada di belakang kursor, dan memasukkan hasil mengevaluasinya.
Gabungkan dengan
multiple-cursors-numbers
misalnya menyisipkan kekuatan dua, atau seri yang0 1 2 0 1 2 0 1 2
melintasi setiap baris atau sesuatu. (Saya sudah melakukan keduanya ini dengan berguna) Atau menggunakannyas.el
untuk menuliskan konfigurasi java yang membosankan dengan hal-hal default. Anda menulis masing-masingCONFIG_VALUE_VARIABLE
, kemudian mengubahnya menjadiCONFIG_VALUE_VARIABLE = "configValueVariable"
dengan menjalankans-camel-case
.sumber
C-S-b
atauM-S-b
untuk memilih mundur hingga Anda mendapatkan bagian yang dipilih. Anda dapat menggunakan panah kiri bergeser juga.C->
(tekan shift jika tombol>
ada di atas tombol keyboard Anda) sampai Anda mendapatkan lebih dari satu item yang dipilih.* Penting untuk memilih mundur atau pilihan pertama akan menempatkan kursor pada posisi yang salah.
sumber