======Macros======
Une macro est l'enregistrement d'une suite d'actions. Une macro peut être exécutée, toutes les actions enregistrées sont alors effectuées automatiquement.
[{{ notepadpp:notepadpp_macromenu.png?nolink |Menu des macros}}]
=====Créer une macro=====
L'enregistrement des actions peut être lancé...
- Par le menu //Macro -> Démarrer l'enregistrement//,
- Par le raccourci clavier Ctrl-Shift-r,
- Par l'icône {{notepadpp:notepadpp_macroedemarrer.png}} de la barre de menu.
...et peut être stoppé :
- Par le menu //Macro -> Arrêter l'enregistrement//,
- Par le raccourci clavier Ctrl-Shift-r,
- Par l'icône {{notepadpp:notepadpp_macroarreter.png}} de la barre de menu.
Les actions de la souris ne sont pas enregistrées.
=====Enregistrer une macro=====
Une fois la macro créée, il est possible (mais pas obligatoire) de l'enregistrer afin de la réutiliser plus tard ou de l'associer à un raccourci clavier.
La fenêtre //Shortcut//, permettant d'enregistrer une macro, peut être ouverte :
- Depuis le menu //Macro -> Enregistrer la macro//,
- Par l'icône {{notepadpp:notepadpp_macroenregistrer.png}} de la barre de menu.
[{{ notepadpp:notepadpp_macroshortcut.png |Fenêtre d'enregistrement d'une macro}}]
Pour seulement enregistrer votre macro, vous n'avez qu'à lui donner un nom et valider. Vous pouvez aussi lui associer un raccourci clavier en remplissant la seconde partie de la fenêtre
=====Renommer une macro=====
Vous pouvez renommer une macro enregistrée ou modifier son raccourci clavier depuis l'onglet //Macros// du gestionnaire de raccourcis : //Macro -> Modifier/Supprimer Macro//. Double-cliquez sur une entrée ou utilisez le bouton //Modify// pour ouvrir la fenêtre d'édition de raccourci.
=====Supprimer une macro=====
Pour supprimer une entrée, faites un clic droit sur la macro visée et sélectionnez //Delete//, ou sélectionnez une macro et cliquez sur le bouton //Delete//.
=====Exécuter une macro=====
====Une fois====
Une fois la macro créée, il est possible de l'exécuter :
- Par le menu //Macro -> Rejouer la macro//,
- Par le raccourci clavier Ctrl-Shift-p,
- Par l'icône {{notepadpp:notepadpp_macroexecuter.png}} de la barre de menu.
Les macros enregistrées sont directement listées dans le menu //Macro//.
====En boucle===
C'est dans cette possibilité que réside l'intérêt des macros : la répétition d'une action un grand nombre de fois sans effort.
La fenêtre //Exécuter une macro en boucle// peut être ouverte depuis le menu //Macro -> Exécuter une macro en boucle...//, ou par l'icône {{notepadpp:notepadpp_macroexecuterenboucle.png}} de la barre de menu.
[{{ notepadpp:notepadpp_macroexecuterfenetre.png |Fenêtre //exécuter une macro en boucle//}}]
* **Macro à exécuter** : choisissez ici une macro que vous avez enregistrée auparavant, ou //Current recorded macro// pour la dernière macro créée.
* **Exécuter x fois** : sélectionnez cette option pour exécuter la macro un certain nombre de fois.
* **Jusqu'à la fin du fichier** : sélectionnez cette option pour exécuter une macro jusqu'à la fin du fichier, si la fin peut être atteinte (une macro qui //n'avance pas// dans le fichier ne sera exécutée qu'une fois).
=====Modification du XML=====
Il est possible (pour les plus entêtés) de modifier les actions effectuées par les macros en modifiant manuellement le fichier de configuration spécifique (voir [[appdata]]).
%APPDATA%/Notepad++/shortcuts.xml
Les macros y sont décrites par des balises '''' à l'intérieur de la balise principale ''''. Leur format est décrit ici : [[https://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Editing_Configuration_Files#.3CMacros.3E|Editing Configuration Files]].
La seule macro par défaut est //Trim Trailing and save// :
Chaque action est définie par un attribut //message// correspondant à un code Scintilla, défini dans le fichier de configuration de Scintilla [[http://scintilla.cvs.sourceforge.net/viewvc/scintilla/scintilla/include/Scintilla.iface|Scintilla.iface]].
=====Exemples=====
====Tu écriras cent fois...====
Pour l'exemple le plus simple, aidons un cancre à qui la maitresse a ordonnée de recopier cent fois :
Je ne dois pas dessiner pendant la classe.
Si la chose est tout à fait ennuyeuse à faire sur un cahier de classe, rien n'est plus aisé en utilisant une macro.
Pour créer notre macro, on...
- lance l'enregistrement au moyen de Ctrl-Shift-r,
- écrit notre phrase,
- appuie sur Entrée pour revenir à la ligne,
- stoppe l'enregistrement au moyen de Ctrl-Shift-r.
- efface notre phrase (pour ne pas la recopier 101 fois!).
Et pour l'exécuter cent fois, on...
- ouvre la fenêtre //Exécuter une macro en boucle// depuis le menu //Macro//,
- sélectionne la première option en rentrant //100//,
- clique sur //OK//.
====Supprimer les retours à la ligne====
Beaucoup se demandent comment supprimer les retours à la ligne. Il est possible de le faire de [[notepadpp:faq#supprimer_les_retours_a_la_ligne|plusieurs manières]] dans Notepad++, dont avec des macros tout simplement grâce à la touche Fin du clavier.
- Lancer l'enregistrement avec Ctrl-Shift-r,
- Aller en fin de ligne avec la touche Fin,
- Supprimer le retour chariot avec la touche Suppr,
- Écrire ce qui séparera les mots, comme une virgule par exemple,
- Stopper l'enregistrement avec Ctrl-Shift-r,
- Ouvrir la fenêtre //Exécuter une macro en boucle// depuis le menu //Macro//,
- Sélectionner //Jusqu'à la fin du fichier// et valider.
un
deux
trois
...
Donne ainsi :
un,deux,trois,...
====Insérer du texte en fin de ligne====
Comme toujours, il est possible de faire cela de [[notepadpp:faq#inserer_du_texte_en_fin_de_ligne|plusieurs manières]].
- Lancer l'enregistrement avec Ctrl-Shift-r,
- Aller en fin de ligne avec la touche Fin,
- Écrire ce qu'on veut insérer,
- Aller à la ligne suivante en appuyant une fois sur ->,
- Stopper l'enregistrement avec Ctrl-Shift-r,
- Ouvrir la fenêtre //Exécuter une macro en boucle// depuis le menu //Macro//,
- Sélectionner //Jusqu'à la fin du fichier// et valider.
1
2
3
Donnerait par exemple, en rajoutant ''.0'' :
1.0
2.0
3.0
====Insérer du texte en début ou milieu de ligne====
N'oublions pas que Notepad++ offre [[notepadpp:faq#inserer_du_texte_en_debut_de_ligne|plusieurs manières]] de faire ce type d'action.
- Lancer l'enregistrement avec Ctrl-Shift-r,
- Aller en fin de ligne avec la touche Fin,
- Aller en début de ligne en appuyant une fois sur ->, à un autre endroit en appuyant plusieurs fois,
- Écrire ce qu'on veut insérer,
- Stopper l'enregistrement avec Ctrl-Shift-r,
- Ouvrir la fenêtre //Exécuter une macro en boucle// depuis le menu //Macro//,
- Sélectionner //Jusqu'à la fin du fichier// et valider.
Pratique pour faire une liste par exemple :
a
b
c
Donne ainsi :
- a
- b
- c