|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Enseignant Inscription : mars 2011 Messages : 6 ![]() |
Bonjour,
je suis débutant en emacs+latex, je voudrais savoir si je peux créer la fonction suivante: - soit sous forme de macro - ou en lisp dans mon .emacs Une fois que j'ai sélectionné à la souris plusieurs mots, je voudrais que ma fonction rajoute des balises personnelles autour de ces mots. Exemple: sélection multiple ------------------------------------------------------------ bla bla bla motSelectionné bla bla bla bla bla motSelectionné bla ------------------------------------------------------------ résultat après appel fonction ou macro ------------------------------------------------------------ bla bla bla \tx{motSelectionné} bla bla bla bla bla \tx{motSelectionné} bla ------------------------------------------------------------ Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 962 ![]() |
Quand ton mot est sélectionné (supposons que le curseur soit à la fin de la sélection), tu peux taper ton accolade fermante. Ensuite, C-x C-x te ramène au début de la sélection où tu peux taper ton "\tx{". Refais C-x C-x pour remettre le curseur à sa place.
Tu peux donc en faire une macro. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Enseignant Inscription : mars 2011 Messages : 6 ![]() |
Bonjour,
en fait, je voulais d'abord sélectionner tous les mots à encadrer par \tx{} (plusieurs dizaines dans un document) puis appliquer une seule fois la macro. Cela sous-entendait une sélection multiple "à la word" avec CTRL enfoncé, mais je viens de me rendre compte que ça ne marche pas sous Emacs... Je viens de trouver une package multi-select.el, je vais essayer de l'utiliser en ce sens... Merci pour la réponse. |
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Inscription : mars 2002 Messages : 962 ![]() |
Au final, le but est de faire du remplacement, donc M-x replace-string est le plus simple.
Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Enseignant Inscription : mars 2011 Messages : 6 ![]() |
Bonjour,
merci pour la réponse, mais en fait je n'ai pas été assez précis dans mon explication, je remets donc mon exemple: Exemple: sélection multiple ------------------------------------------------------------ bla bla bla Selections_1 bla bla bla bla bla selections_2 bla ------------------------------------------------------------ résultat après appel fonction ou macro ------------------------------------------------------------ bla bla bla \tx{Selections_1} bla bla bla bla bla \tx{selections_2} bla ------------------------------------------------------------ avec Selections_ des sélections de un ou plusieurs mots et pas les mêmes... c'est pourquoi M-x replace-string ne suffit pas. J'ai réussi à obtenir le résultat voulu en utilisant la fonction multi-select-wrap-perso du package multi-select.el dans la fonction suivante: (defun insert-tx-select () "insert \tx sur selection"(interactive) (multi-select-wrap-perso "\\tx\{" "}")) Pour obtenir multi-select-wrap-perso, j'ai modifié une fonction du package qui insérait un préfixe et un suffixe autour de la multi-sélection mais demandait les deux arguments de manière intéractive. |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() Inscription : avril 2008 Messages : 800 ![]() |
Citation:
il existe une manière qui me semble plus habituelle pour un emacsien: elle consiste à faire une macro (ou une fonction à lier à une clé) qu'on appelle sur chaque sélection. par exemple: sélectionner le premier mot puis définir la macro par: puis sélectionner autre chose et exécuter la macro par L'inconvénient par rapport à la sélection multiple, c'est qu'il faut retaper "C-x e" pour chaque nouvelle sélection. )jack( |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com