J'ai récemment appris à ce sujet multiple-cursors
, et cela semble être un paquet très utile. J'ai parcouru la documentation sur le référentiel d'origine , mais les commandes me semblent toujours un peu obscures.
J'ai ensuite regardé la vidéo dans Emacs Rocks !, et la vidéo est excellente, mais elle se concentre principalement sur ce qui multiple-cursors
est capable de le faire, plutôt que sur la façon de le faire.
Existe-t-il des guides, des tutoriels ou des exemples illustrant ses fonctionnalités les plus élémentaires?
multiple-cursors
Amelio Vazquez-Reina
la source
la source
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.Réponses:
Outre les utilisations décrites par @bastibe, j'utilise plusieurs curseurs pour ajouter ou supprimer du texte depuis le début / la fin d'un groupe de lignes:
set-rectangular-region-anchor
(lié à la clé que vous voulez, je pense que la suggestion de Magnars était H-space, si vous avez une hyper clé)C-n
etC-p
) jusqu'à ce que vous ayez un curseur sur chaque ligne à modifierC-e
) pour y apporter des modifications.Vous pouvez utiliser
forward-word
,forward sentence
etc. pour vous déplacer dans les lignes, ce qui vous permet d’éditer le quatrième mot de chaque ligne, même si le texte de chaque ligne n’est pas identique.Par exemple, je fais ce genre de travail tout le temps:
C-u M-!ls / test-dat / pp5 / * fsaRETURN
Ceci insère le contenu du répertoire pp5 dans le tampon. Je place un point
!
au début de la liste:→
→
→
→
Et voila, vous avez converti une liste de fichiers en code pour lire cette liste. C'est en fait beaucoup plus difficile à décrire que de le faire!
la source
multiple-cursors
peuvent faire une combinaison très puissante.phi-search
peut être plus robuste que de naviguer avec des commandes telles queM-f (x3)
phi-search
, ça a l'air super!J'ai essentiellement deux cas d'utilisation fréquente pour
multiple-cursors
:mc/mark-next-like-this
etmc/mark-previous-like-this
pour marquer plusieurs instances de celle-ci. J'ai alors immédiatement frappé C-wpour supprimer chaque instance et écrire une nouvelle chaîne à la place. J'utilise souvent cela pour renommer une variable en code.mc/edit-lines
vous obtenez un curseur par ligne. Vous pouvez maintenant utiliser les commandes d'édition habituelles qui agissent sur chacun de ces curseurs.Le premier cas d'utilisation est particulièrement utile avec
expand-region
. Je suiser/expand-region
lié à C-j, etmc/mark-next-like-this
etmc/mark-previous-like-this
à C->et C-<. Avec cela, je peux facilement sélectionner le mot point et marquer instantanément l’occurrence suivante / précédente de ce mot.Le deuxième cas d'utilisation a remplacé la plupart des utilisations de macros pour moi. Au lieu d'enregistrer une macro et de l'appliquer à plusieurs endroits, je placerais un curseur sur chaque endroit et effectuerais l'opération à la fois.
la source
multiple-cursors
recommandez ou recommandez, par exemple,mark-next-like-this
&mark-previous-like-this
?C->
etC-<
pourmark-next-like-this
etmark-previous-like-this
.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 fonctionsiy-go-to-char
etiy-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.
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 avec
mc/insert-numbers
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 qui0 1 2 0 1 2 0 1 2
traverse chaque ligne ou quelque chose. (J'ai fait ces deuxs.el
choses utilement) ou utilisez-le avec pour écrire ces fastidieuses configurations Java avec des choses par défaut. Vous écrivez chacunCONFIG_VALUE_VARIABLE
, puis transformez cela enCONFIG_VALUE_VARIABLE = "configValueVariable"
exécutions-camel-case
.la source
C-S-b
ouM-S-b
pour sélectionner en arrière jusqu'à ce qu'une partie soit sélectionnée. Vous pouvez également utiliser la touche Maj gauche.C->
(appuyez sur la touche Maj si la touche se>
trouve en haut de la touche de votre clavier) jusqu'à ce que plusieurs éléments soient sélectionnés.* Il est important de sélectionner en arrière ou la première sélection placera le curseur dans la mauvaise position.
la source