Dans Vim, vous pouvez appuyer sur .
pour répéter la dernière modification, y compris l'insertion de texte.
Dans Emacs, C-x
z
répète uniquement la dernière commande. Je suis conscient que les macros peuvent être utilisées ici, mais le plus souvent, je me rends compte que je dois réinsérer le même texte trop tard. Lorsque je dois la réinsérer une seule fois de plus , définir une macro est alors inutile.
Q: Existe - t-il un moyen de répéter l'insertion de texte à l'intérieur d'Emacs?
C-f
, recherche, etc.)? Si cela a un sens ...C-space
, déplace le curseur,M-w
pour copier), puis jeC-y
colle autant de fois que nécessaire.Réponses:
dot-mode
est un "mode mineur pour répéter la saisie ou les commandes" et peut faire ce dont vous avez besoin. Il répète simplement les dernières insertions / suppressions que vous faites. C'est assez similaire à.
Vi (m).la source
dot-mode
fait et comment il fournit les fonctionnalités que OP essaie d'obtenir?Vous pouvez utiliser
kmacro-edit-lossage
(C-x C-k l
) pour cela: il vous permet de visualiser vos 300 dernières frappes (y compris les insertions simples), et de les modifier sous forme de macro.Pour une utilisation simple, il vous suffit de localiser le début de l'insertion que vous souhaitez répéter, de supprimer tout le texte de "Macro:" à ce point et d'appuyer sur
C-c C-c
. Vous disposez maintenant d'une macro que vous pouvez utiliser pour effectuer les mêmes actions, comme si vous n'aviez pas oublié de l'enregistrer en premier lieu.Malheureusement, cela échoue si les 300 dernières frappes incluent des clics de souris.
Modifier: le code suivant le modifie afin que seules les clés après le dernier événement de souris soient conservées.
la source
edmacro-fix-menu-commands
. Il prend un argument facultatif qui peut ignorer les événements de la souris. Mais je ne connais pas assez le système de conseil pour le faire fonctionner.Je pense que la
dabbrev-expand
fonction pourrait faire l'affaire. Supposons que vous ayez déjà tapé quelques mots: emacs, emotion, emoji, ... La prochaine fois que vous taperez un mot commençant par 'em', vous pourrez taperM-/
et emacs vous proposera d'insérer l'un des mots déjà insérés commençant par 'em'. Continuez à frapperM-/
et emacs vous montrera 'emoji', puis 'émotion, puis ...Vous pouvez également consulter la commande repeat-complex-command . L'exemple populaire étant: vous voulez répéter la commande
query-replace
dans de nombreux tampons différents en utilisant toujours les mêmes arguments, remplacez «pitt» par «patt».Vous l'exécutez une fois, accédez à une autre fenêtre et tapez
C-x ESC ESC
pour l'exécuter à nouveau.Et pour terminer, puis-je suggérer de répéter l'insertion ? Ce fichier el vous aidera à faire l'insertion, en utilisant une sorte de logique. Cela ressemble plus à «répéter la dernière insertion, mais pour chaque itération, les arguments changeront.
Cet exemple se trouve dans le fichier el :
J'espère que cela aidera.
la source
repeat
(ce que l'OP mentionne), pas vraiment utile pour les insertions de texte.Repeat-insert
doit être pensé avant d'insérer le texte, tout comme une macro. Maisdabbrev-expand
c'est une bonne idée!