Я хотел бы добавить некоторые дополнения, которые я иногда использую multiple-cursors
.
Я нашел следующее, чтобы быть полезным:
гу-гоу к полукоксу
Иногда вам нужно перейти к следующему #
или следующему ,
или к определенному разделителю. Это особенно удобно, когда вам нужно перемещаться по разному количеству слов для каждого курсора. Он предоставляет функции iy-go-to-char
и iy-go-to-char-backward
, которые вы можете связать и использовать красиво.
расширить регион
Это действительно полезно по той же причине: iy
когда под каждым курсором есть несколько разные строки, и вы, возможно, захотите выбрать строку в кавычках под точкой или подобным.
пользовательские вещи
Это вещи, которые просто elisp в моем конфиге, но я считаю полезным. Вероятно, не написано мной.
Подсказка для ввода
Я получил это от 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-replace
Это супер мощный инструмент, который позволяет использовать некоторые действительно полезные биты 'n'. Он оценивает, какой пол находится за курсором, и вставляет результат его оценки.
Объедините это с, 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! видео будет полезно для начинающих.