J'ai un fichier texte. Est-ce que EMACS peut sélectionner du texte en fonction de la regex et de la mettre en sonnerie, de sorte que je puisse le copier ailleurs? Quelque chose comme Regex-Kill-Ring-Save? P>
3 Réponses :
Je ne suis pas sûr de savoir s'il y a déjà une telle fonction, mais ce que vous pouvez le faire avec une macro du clavier: p>
C-X ( Code> LI>
- Recherchez votre REGEXP avec
Recherche-Forward-REGEXP CODE> LI>
- passer au début de votre match (le texte que vous souhaitez tuer) avec les différentes commandes de navigation EMACS, par ex.
Recherche code> ou Backward-Word code> etc. Li>
- Mark:
C-SPC CODE> LI>
- passer à la fin de votre match li>
- Tuez le texte:
c-w code> li>
ol>
Vous pouvez ensuite nommer la macro du clavier avec MX nom-kbd-macro code> de sorte que vous puissiez exécuter la macro avec un nom plutôt que avec CX E code>. < / p>
Si vous souhaitez enregistrer la macro pour les sessions futures, vous pouvez ouvrir votre .emacs code> et insérer la macro dans le tampon avec m-x insert-kbd-macro code>. Après que vous puissiez lier une clé à la macro, comme vous, comme vous, liez les touches des fonctions EMACS normales, par exemple. (touche globale-clé "\ C-C m" 'Funky-macro-macro) code>. p>
Inspiré des commentaires déjà donnés (la réponse Charles ne fonctionne pas comme je le souhaiterais), j'ai ajouté une nouvelle fonction à la carte du mode ISEARCH / ISEARCH-REGEXP qui ne met que la chaîne correspondante dans la bague Kill (alors que Charles proposition tue du point de courant à la fin de la chaîne correspondante): La bonne chose à propos de l'approche ISEARCH / ISEARCH-REGEXP (que vous pouvez activer avec Cela fonctionne pour moi avec EMACS 23.1. Je ne sais pas si cela fonctionnera dans toutes les situations. Quoi qu'il en soit, j'espère que vous le trouverez utile :) p> MISE À JOUR: STROND> PARTICULER L'EMACSWIKI J'ai trébuché sur killiséarchmatch qui suggère plus ou moins la même chose (plus quelques conseils ...). P> acclamations,
Daniel P> P> CS code> et cms code> respectivement) est que vous pouvez voir votre chaîne de recherche en croissance et vous pouvez le copier avec MW code> dès que vous êtes satisfait (et revenir à l'endroit où vous avez été auparavant Cu C-Space Code>). P>
Merci, c'est ce que je voulais, mais je ne pouvais pas faire depuis que je suce à Lisp.
isarch + strong> fait déjà cela. Il définit éventuellement la région autour de la cible de recherche. Vous pouvez utiliser sa valeur est t p>
Documentation: P>
Non-NIL signifie isarching désactive la région. P>
Voir aussi l'option Vous pouvez personnaliser cette variable. P>
blockQuote> C-SPC C-SPC CODE> ou M- = C-SPC CODE> à tout moment pendant ISECH pour basculer ceci. p>
ISEARCHP-DIACTIVATE-REGION-SOP CODE> est une variable définie dans iSearch + .el code>. p>
iSearchP-restrice-to-région-drapeau code>.
Vous pouvez basculer cette option à l'aide de M- = C-SPC CODE> Pendant ISEARCH. P>