Me gustaría agregar algunos extras que a veces uso multiple-cursors
.
He encontrado que lo siguiente es útil:
iy-go-to-char
A veces, te encuentras necesitando pasar al siguiente #
o al siguiente ,
o algún delimitador específico. Esto es especialmente útil cuando necesita moverse a través de diferentes números de palabras para cada cursor. Proporciona las funciones iy-go-to-char
y iy-go-to-char-backward
, que puede vincular y usar muy bien.
expandir-región
Esto es realmente útil por una razón similar a iy
: cuando tiene líneas ligeramente diferentes debajo de cada cursor, y tal vez desee seleccionar la cadena entre comillas debajo del punto o similar.
cosas personalizadas
Estas son cosas que son solo elisp en mi configuración, pero me parecen útiles. Probablemente no escrito por mí.
Solicitud de entrada
Recibí este de Magnars en respuesta a una solicitud para poner una cadena diferente debajo de cada cursor. El código es simple, pero vincularlo a algo y usarlo para múltiples cursores es una forma práctica de insertar cosas ligeramente diferentes en cada lugar.
(defun prompt-for-insert ()
(interactive)
(insert (read-string "Insert: ")))
Número de incremento en el punto
Esto vino de SO o de emacswiki. No estoy seguro de cuál. Es bastante útil por sí solo, y también cuando se usa en combinación conmc/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
Esto es súper poderoso y permite algunos bits 'n' piezas realmente útiles. Evalúa cualquier sexp que esté detrás del cursor e inserta el resultado de evaluarlo.
Combínelo con, multiple-cursors-numbers
por ejemplo, para insertar potencias de dos, o una serie que 0 1 2 0 1 2 0 1 2
atraviesa cada línea o algo. (He hecho ambas cosas de manera útil) O úsela s.el
para escribir esas tediosas configuraciones de Java con las cosas predeterminadas. Escribes cada uno CONFIG_VALUE_VARIABLE
, luego lo transformas CONFIG_VALUE_VARIABLE = "configValueVariable"
corriendo s-camel-case
.
(defun eval-and-replace ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%s" value))))
multiple-cursors
muy rápidamente con solo leer el archivo README. Mi recomendación es simplemente aprendermc/mark-next-like-this
. Pruébelo y familiarícese con lo que hace. A partir de ahí, consulte el archivo README cada vez que tenga una pregunta que comience con "Me pregunto si los cursores múltiples pueden hacer ..." Dicho todo esto, creo que es una introducción más básica que las rocas Emacs. El video sería útil para los principiantes.