J'aimerais ajouter quelques extras que j'utilise parfois avec multiple-cursors
.
J'ai trouvé ce qui suit utile:
iy-go-to-char
Parfois, vous vous rendez compte que vous avez besoin de passer au suivant #
ou au prochain ,
délimiteur. Ceci est particulièrement utile lorsque vous devez vous déplacer sur différents nombres de mots pour chaque curseur. Il fournit les fonctions iy-go-to-char
et iy-go-to-char-backward
, que vous pouvez lier et utiliser facilement.
élargir la région
Ceci est vraiment utile pour des raisons similaires iy
- lorsque vous avez des lignes légèrement différentes sous chaque curseur et que vous souhaitez peut-être sélectionner la chaîne entre guillemets sous le point ou similaire.
trucs personnalisés
Ce sont des choses qui sont juste elisp dans ma config, mais je trouve utile. Probablement pas écrit par moi.
Invite à la saisie
J'ai reçu celle-ci de Magnars en réponse à une demande de mise d'une chaîne différente sous chaque curseur. Le code est simple, mais le lier à quelque chose et utiliser plusieurs curseurs est un moyen pratique d'insérer des éléments légèrement différents à chaque endroit.
(defun prompt-for-insert ()
(interactive)
(insert (read-string "Insert: ")))
Incrément numéro au point
Cela vient soit de SO, ou emacswiki. Je ne sais pas lequel. C'est très utile en soi, et aussi lorsqu'il est utilisé en combinaison avecmc/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
C'est super puissant, et permet quelques morceaux vraiment utiles. Il évalue le sexe derrière le curseur et insère le résultat de son évaluation.
Combinez-le avec, multiple-cursors-numbers
par exemple, pour insérer des puissances de deux ou une série qui 0 1 2 0 1 2 0 1 2
traverse chaque ligne ou quelque chose. (J'ai fait ces deux s.el
choses utilement) ou utilisez-le avec pour écrire ces fastidieuses configurations Java avec des choses par défaut. Vous écrivez chacun CONFIG_VALUE_VARIABLE
, puis transformez cela en CONFIG_VALUE_VARIABLE = "configValueVariable"
exécution s-camel-case
.
(defun eval-and-replace ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%s" value))))
multiple-cursors
très vite me mettre à l'aise en lisant le fichier README. Ma recommandation est juste d'apprendremc/mark-next-like-this
. Essayez-le et familiarisez-vous avec ce qu'il fait. À partir de là, reportez-vous au fichier README chaque fois que vous avez une question commençant par "Je me demande si plusieurs curseurs peuvent le faire ..." Cela dit, je pense qu'une introduction plus fondamentale que celle d'Emacs! la vidéo serait utile pour les débutants.