Vorrei aggiungere alcuni extra con cui a volte uso multiple-cursors
.
Ho trovato utile quanto segue:
iy-go-to-char
A volte ti ritrovi a dover passare al successivo #
o al successivo ,
o ad alcuni delimitatori specifici. Ciò è particolarmente utile quando è necessario spostarsi tra diversi numeri di parole per ciascun cursore. Fornisce le funzioni iy-go-to-char
e iy-go-to-char-backward
, che è possibile associare e utilizzare bene.
expand-regione
Questo è davvero utile per ragioni simili a iy
- quando ci sono linee leggermente diverse sotto ciascun cursore e potresti voler selezionare la stringa tra virgolette sotto il punto o simile.
roba personalizzata
Queste sono cose che sono semplicemente elisp nella mia configurazione, ma le trovo utili. Probabilmente non scritto da me.
Richiesta di input
Ho ricevuto questo da Magnars in risposta a una richiesta di inserire una stringa diversa sotto ciascun cursore. Il codice è semplice, ma associarlo a qualcosa e l'utilizzo per più cursori è un modo pratico per inserire elementi leggermente diversi in ogni posizione.
(defun prompt-for-insert ()
(interactive)
(insert (read-string "Insert: ")))
Incrementa il numero nel punto
Questo proviene da SO, o emacswiki. Non so quale. È abbastanza utile da solo, e anche se usato in combinazione 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
Questo è super potente e consente alcuni bit 'n' pezzi davvero utili. Valuta qualunque sexp sia dietro il cursore e inserisce il risultato della valutazione.
Combinalo con multiple-cursors-numbers
per esempio inserire potenze di due o una serie che 0 1 2 0 1 2 0 1 2
attraversa ogni linea o qualcosa del genere. (Ho fatto entrambe queste cose utilmente) O usalo con s.el
per scrivere quella noiosa configurazione Java con cose predefinite. Scrivi ciascuno CONFIG_VALUE_VARIABLE
, quindi trasformalo CONFIG_VALUE_VARIABLE = "configValueVariable"
eseguendolo s-camel-case
.
(defun eval-and-replace ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%s" value))))
multiple-cursors
molto velocemente leggendo il file README. La mia raccomandazione è di impararemc/mark-next-like-this
. Provalo e acquisisci familiarità con ciò che fa. Da lì fai riferimento al README ogni volta che hai una domanda che inizia con "Mi chiedo se più cursori possono fare ..." Detto questo, penso che un'introduzione più basilare di Emacs Rocks! il video sarebbe utile per i principianti.