Comment écrire une macro pour Notepad++?
Je voudrais écrire une macro pour Notepad++ qui devrait remplacer car1, car2, char3 avec char4, char5, char6, respectivement.
Grâce
Vous devez vous connecter pour publier un commentaire.
Je voudrais écrire une macro pour Notepad++ qui devrait remplacer car1, car2, char3 avec char4, char5, char6, respectivement.
Grâce
Vous devez vous connecter pour publier un commentaire.
Macros dans Notepad++ sont juste un tas de codé opérations: vous commencez l'enregistrement, fonctionnent sur le tampon, peut-être activer les menus, arrêter l'enregistrement, puis de jouer la macro.
Après enquête, j'ai découvert qu'ils sont enregistrés dans le fichier shortcuts.xml dans la section Macros. Par exemple, j'ai:
Je n'ai pas regardé la source, mais de la regarder, je dirais que nous avons des messages envoyés à l'Étincelle (le composant d'édition, peut-être de type 0 et 1), et à Notepad++ en lui-même (probablement l'activation des éléments de menu).
Je ne pense pas qu'il va enregistrer les actions dans les boîtes de dialogue (comme rechercher/remplacer).
Regardant Scintilla.iface fichier, nous pouvons voir que 2170 est le code de ReplaceSel (ie. insérer une chaîne de caractères est rien n'est sélectionné), 2327 est Onglet commande, et Resource Hacker (juste l'avoir à portée de main...) montre que 42024 est "Garniture de Fuite de l'Espace" dans le menu et 41006 est "Enregistrer".
Je suppose que l'action de type 0 est pour Scintilla commandes numériques params de type 1 est pour les commandes avec le paramètre de chaîne, 2 pour Notepad++ commandes.
Problème: Scintilla ne possède pas de "Remplacer tout" de commande: c'est la tâche du client, l'itération, avec ou sans confirmation, etc.
Un autre problème: il semble de type 1, l'action est limitée à 1 char (j'ai édité manuellement, lors de la sortie N++ il a été tronqué).
J'ai essayé quelques trucs, mais j'ai peur de cette tâche est au-delà de la macro capacités.
Peut-être que c'est là que SciTE avec son script Lua capacité (ou du Programmeur le bloc-notes qui semble être scriptable en Python) a un bord... 🙂
[EDIT] on dirait que je suis la macro ci-dessus à partir de ce fil ou un endroit similaire... 🙂 je suppose que les premières lignes sont inutiles (effet de bord ou l'enregistrement), mais ils en sont de bons exemples de code de macro de toute façon.
wparams
(comme dans l'action que l'une macro s'exécute), vous pouvez utiliser la Ressource Hacker comme indiqué dans cette réponse, ou la caisse de la fichiers de langue sur Github pour une liste complète des wparam conforme IdJ'ai trouvé 'Script Python' plugin pour Notepad++ plus utile car avec le plugin, je pourrais écrire des macros simples dans la forme de python et Il a aussi eu la très bonne documentation et des exemples de macros écrites en python ainsi. Si vous êtes assez à l'aise avec python, j'ai pensé 'Script Python" vont fournir de la justice.
Pour plus d'informations, reportez-vous : http://npppythonscript.sourceforge.net/
J'ai enregistré une macro et je l'ai trouvé dans %APPDATA%\Notepad++\shortcuts.xml. Il ressemble à posté dans le premier post de ce thread.
- Je utiliser BNP Ver. 5.9.6.2 avec Win7.
Ce post peut vous aider comme un peu liés :
En Utilisant Les RegEX Pour Le Préfixe Et L'Ajouter Dans Notepad++
En supposant alphanumérique mots, vous pouvez utiliser:
Search = ^([A-Za-z0-9]+)$
Remplacer = pouvoir:"\1"
Ou, si vous voulez juste pour mettre en évidence les lignes et l'utilisation de "Tout Remplacer" & "Dans la Sélection" (avec le même remplacer):
Search = ^(.+)$
^ points au début de la ligne.
$ points à la fin de la ligne.
\1 sera la source de match dans les parenthèses.
Mon expérience personnelle est que shortcuts.xml est remplacée par les chargés initialement à + tard macros enregistrées et les paramètres lors de Notepad++ sorties. Si vous ne pouvez pas utiliser Notepad++ en lui-même pour l'édition de ce fichier.
Fermez Notepad++, édition shortcuts.xml par un autre outil, de l'enregistrer et redémarrer Notepad++.
Je ne suis pas sûr si cela aide, mais j'avais besoin de créer une macro pour tenir un extrait de code, donc j'ai simplement enregistré moi-même en insérant les éléments et définir un raccourci. Certes, je ne suis pas en utilisant la version 5.9 alors il pourrait y avoir quelques légères différences de version. Pour accéder à l'enregistreur de macro aller à la Macro > Démarrer l'Enregistrement. Alors vous allez effectuer votre action, puis aller à la Macro > Arrêter l'Enregistrement. Je recommande de le lire pour s'assurer qu'elle est correcte, puis enregistrer et configurer votre touche de raccourci.
L'espoir de l'aide.
J'ai juste fait en v5.9.1. Allez simplement dans le Menu Macro, cliquez sur "Démarrer l'Enregistrement", effectuez votre 3 remplacer toutes les commandes, puis arrêter l'enregistrement. Vous pouvez ensuite sélectionner "Enregistrer la Macro Enregistrée", et de jouer aussi souvent que vous le souhaitez, et il va effectuer la remplace comme vous vous attendez.
En fait, l'shortcuts.xml fichier ne pas magasin généré par l'utilisateur, des macros et pas évident de trouver des candidats contenir cette info. Ces instructions ne sont pas à jour.
Contraire à divers sites internet, des conseils, de stockage généré par l'utilisateur macros n'est pas activé pour la v. 5.4.2. Ce fichier XML est là, mais votre macro ne sont pas stockés dans.
Je suppose que c'est un bug qui sera réglé par la prochaine version.