Я хотів би додати деякі додаткові речі, якими я іноді користуюся multiple-cursors
.
Я виявив таке корисне:
iy-go-to-char
Іноді виникає потреба перейти до наступного #
чи наступного ,
чи якогось конкретного роздільника. Це особливо зручно, коли потрібно переміщувати різні кількості слів для кожного курсору. Він надає функції iy-go-to-char
і iy-go-to-char-backward
, які ви можете добре зв’язати та використовувати.
розширити-регіон
Це дійсно корисно з аналогічної причини iy
- коли у вас є дещо інші рядки під кожним курсором, і, можливо, ви хочете вибрати цитований рядок під точкою чи подібним.
нестандартні речі
Це речі, які в моєму конфігурації просто є, але я вважаю корисними. Напевно, не написане мною.
Запрошення на введення
Я отримав цю інформацію від Magnars у відповідь на запит про введення різного рядка під кожен курсор. Код простий, але прив’язувати його до чогось і використовувати для декількох курсорів - це зручний спосіб вставити трохи різні речі в кожне місце.
(defun prompt-for-insert ()
(interactive)
(insert (read-string "Insert: ")))
Приріст номер у точці
Це або походить від SO, або emacswiki. Не впевнений, який. Це досить корисно самостійно, а також при використанні в поєднанні зmc/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-substituse
Це надзвичайно потужно і дозволяє отримати декілька дійсно корисних біт-п'єс. Він оцінює те, що секпс знаходиться за курсором, і вставляє результат його оцінки.
Поєднайте його, multiple-cursors-numbers
щоб, наприклад, вставити сили двох, або серію, яка переходить 0 1 2 0 1 2 0 1 2
через кожну лінію чи щось таке. (Я обидва це зробив корисно) Або скористайтеся ним, s.el
щоб виписати ці нудні конфігурації Java з речами за замовчуванням. Ви виписуєте кожен CONFIG_VALUE_VARIABLE
, а потім перетворюєте його CONFIG_VALUE_VARIABLE = "configValueVariable"
на біг s-camel-case
.
(defun eval-and-replace ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%s" value))))
multiple-cursors
дуже швидко встати і працювати, просто прочитавши файл README. Моя рекомендація - просто вчитисяmc/mark-next-like-this
. Спробуйте це і ознайомтеся з тим, що це робить. Звідти поверніться до README кожного разу, коли у вас виникне запитання, яке починається з "Цікаво, чи можуть зробити декілька курсорів ..." Все це сказав, я думаю, що це більш базове введення, ніж скелі Emacs! відео буде корисним для початківців.