Cette version (2015/02/25 13:06) est en ébauche.Approuvés: 0/1
**Ceci est une ancienne révision du document !** ----
======Notepad++, les macros====== <note>test</note> {{http://notepad-plus.sourceforge.net/commun/images/chameleon-pencil-big.png }} 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|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 <key>Ctrl-Shift-r</key>, - 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 <key>Ctrl-Shift-r</key>, - Par l'icône {{notepadpp:notepadpp_macroarreter.png}} de la barre de menu. <note important>Les actions de la souris ne sont pas enregistrées.</note> =====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 ou modifier 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. <note important> Il n'est pas possible de modifier les actions d'une macro. </note> ====Modification du XML==== Bon, d'accord, il est en fait possible (pour les plus entêtés) de modifier les macros en modifiant manuellement le fichier //shortcuts.xml// présent dans le répertoire des préférences utilisateur de Notepad++. Par exemple sous Windows XP : <code>Document and Setting\username\Application Data\Notepad++\shortcuts.xml</code> Les macros y sont décrites par des nodes //<Macro>// dans le node //<Macros>//, 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// : <Code:xml linenums:1> <Macro name="Trim Trailing and save" Ctrl="no" Alt="yes" Shift="yes" Key="83"> <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> <Action type="0" message="2327" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2327" wParam="0" lParam="0" sParam="" /> <Action type="2" message="0" wParam="42024" lParam="0" sParam="" /> <Action type="2" message="0" wParam="41006" lParam="0" sParam="" /> </Macro> </Code> Chaque action est définie par un //message// correspondant à un code Scintilla, code à chercher dans le fichier de configuration de Scintilla [[http://scintilla.cvs.sourceforge.net/viewvc/scintilla/scintilla/include/Scintilla.iface|Scintilla.iface]]. <note warning> Éditez ce fichier au moyen d'un autre éditeur de texte, Notepad++ écrase ses fichiers de configuration à sa fermeture.</note> =====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 <key>Ctrl-Shift-p</key>, - Par l'icône {{notepadpp:notepadpp_macroexecuter.png}} de la barre de menu. <note tip>Les macros enregistrées sont directement listées dans le menu //Macro//.</note> ====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). =====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 <key>Ctrl-Shift-r</key>, - écrit notre phrase, - appuie sur <key>Entrée</key> pour revenir à la ligne, - stoppe l'enregistrement au moyen de <key>Ctrl-Shift-r</key>. - 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 <key>Fin</key> du clavier. - Lancer l'enregistrement avec <key>Ctrl-Shift-r</key>, - Aller en fin de ligne avec la touche <key>Fin</key>, - Supprimer le retour chariot avec la touche <key>Suppr</key>, - Écrire ce qui séparera les mots, comme une virgule par exemple, - Stopper l'enregistrement avec <key>Ctrl-Shift-r</key>, - Ouvrir la fenêtre //Exécuter une macro en boucle// depuis le menu //Macro//, - Sélectionner //Jusqu'à la fin du fichier// et valider. <code> un deux trois ... </code> Donne ainsi : <code> un,deux,trois,... </code> ====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 <key>Ctrl-Shift-r</key>, - Aller en fin de ligne avec la touche <key>Fin</key>, - Écrire ce qu'on veut insérer, - Aller à la ligne suivante en appuyant une fois sur <key>-></key>, - Stopper l'enregistrement avec <key>Ctrl-Shift-r</key>, - Ouvrir la fenêtre //Exécuter une macro en boucle// depuis le menu //Macro//, - Sélectionner //Jusqu'à la fin du fichier// et valider. <code> 1 2 3 </code> Donnerait par exemple, en rajoutant ''.0'' : <code> 1.0 2.0 3.0 </code> ====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 <key>Ctrl-Shift-r</key>, - Aller en fin de ligne avec la touche <key>Fin</key>, - Aller en début de ligne en appuyant une fois sur <key>-></key>, à un autre endroit en appuyant plusieurs fois, - Écrire ce qu'on veut insérer, - Stopper l'enregistrement avec <key>Ctrl-Shift-r</key>, - 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 : <code> a b c </code> Donne ainsi : <code> - a - b - c </code>