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 fungsi iy-go-to-char
dan iy-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.
(defun prompt-for-insert ()
(interactive)
(insert (read-string "Insert: ")))
Angka
kenaikan pada titik Ini berasal dari SO, atau emacswiki. Tidak yakin yang mana. Ini cukup berguna dengan sendirinya, dan juga ketika digunakan bersamamc/insert-numbers
(defun my-increment-number-decimal (&optional arg)
"Increment the number forward from point by 'arg'."
(interactive "p*")
(save-excursion
(save-match-data
(let (inc-by field-width answer)
(setq inc-by (if arg arg 1))
(skip-chars-backward "0123456789")
(when (re-search-forward "[0-9]+" nil t)
(setq field-width (- (match-end 0) (match-beginning 0)))
(setq answer (+ (string-to-number (match-string 0) 10) inc-by))
(when (< answer 0)
(setq answer (+ (expt 10 field-width) answer)))
(replace-match (format (concat "%0" (int-to-string field-width) "d")
answer)))))))
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 yang 0 1 2 0 1 2 0 1 2
melintasi setiap baris atau sesuatu. (Saya sudah melakukan keduanya ini dengan berguna) Atau menggunakannya s.el
untuk menuliskan konfigurasi java yang membosankan dengan hal-hal default. Anda menulis masing-masing CONFIG_VALUE_VARIABLE
, kemudian mengubahnya menjadi CONFIG_VALUE_VARIABLE = "configValueVariable"
dengan menjalankan s-camel-case
.
(defun eval-and-replace ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%s" value))))
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.