Puis-je rechercher et remplacer dans une macro Notepad ++?

18

J'essaie de créer une macro dans Notepad ++ qui me permet de faire quelques recherches et remplacements standard. Je peux obtenir la macro pour tout faire (ajouter des lignes, ajouter des caractères) sauf rechercher et remplacer.

Je ne trouve pas les fichiers pour modifier la macro manuellement.

Quelqu'un a-t-il déjà réussi à créer une macro dans Notepad ++ qui effectue la recherche et le remplacement? Comment?

PS: je ne suis pas intéressé par d'autres outils qui peuvent effectuer cela - je connais perl, vi (m), UltraEdit, sed, awk moi-même - je me demandais simplement si Notepad ++ pouvait le faire.

Konerak
la source

Réponses:

13

Oui vous pouvez, j'ai juste essayé d'enregistrer une nouvelle macro, j'ai fait une recherche et un remplacement et il a réussi à sauvegarder l'action, donc quand j'ai joué la macro, il a fait la même action de recherche et de remplacement.

Je ne suis pas un expert de Notepad ++ Macros, mais je suppose que vous l'êtes ... J'ai ouvert un fichier aléatoire et créé une macro appelée test. Il a recherché un mot appelé "snip" et l'a remplacé par "blaa".

L'ouverture du shortcuts.xmlfichier après la fermeture de Notepad ++ révèle cette nouvelle macro:

<Macro name="test" Ctrl="no" Alt="no" Shift="no" Key="0">
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="snip" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="blaa" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1608" sParam="" />
</Macro>

Ceci est testé et fonctionne sur ma machine, je peux modifier manuellement ce fichier et les changements sont reflétés et fonctionnent dans Notepad ++.

Veuillez noter cependant que le shortcuts.xmlfichier (situé dans votre dossier Appdata) n'est chargé et enregistré qu'à l'ouverture / fermeture de Notepad ++.

William Hilsum
la source
Merci. J'ai trouvé le fichier, mais l'enregistrement n'a toujours pas fonctionné. J'ai édité le fichier (pas avec N ++ bien sûr) et j'ai collé votre extrait. N ++ a reconnu la macro mais n'a réussi à rien remplacer - je suppose que ce doit être une dépendance non satisfaite qui m'empêche d'enregistrer / de jouer.
Konerak
1
Tout ce que j'ai, c'est Notepad ++ sans add-on spécial (installé à partir de Ninite) ... Assurez-vous que vous utilisez la dernière version - mais si vous ne parvenez pas à faire fonctionner cela, il se peut que quelque chose ne tourne pas rond avec votre installation.
William Hilsum
J'étais après une fonction "trouver et remplacer dans tous les documents" et j'ai réussi à le produire avec l'exemple de code ci-dessus, avec deux modifications mineures: le lParam"768" ci-dessus est devenu "2" et le lParam"1608" est devenu "1635". Sinon, cela a très bien fonctionné! (Bloc-notes ++ 5.9.2)
Mike
J'utilise la v7.6 et j'ai pu enregistrer une macro pour effectuer une recherche et un remplacement. Il a généré la même définition dans shortcuts.xml. Cependant, la macro n'a fonctionné qu'après avoir fermé Notepad ++ et rouvert le programme. J'ai cherché shortcuts.xmlà remplacer ce qui avait été enregistré par votre exemple et j'ai découvert que rien de nouveau n'avait été écrit dans le fichier. Ensuite, je me suis souvenu de votre note sur les raccourcis uniquement chargés et enregistrés uniquement lorsque le programme s'ouvre et se ferme. Merci donc à @WilliamHilsum pour cette astuce super utile. J'aurais pu abandonner l'effort sans lui.
Adam Porad
6

J'ai déjà constaté que cela ne fonctionnait pas non plus pour moi. Mais ensuite, j'ai mis à jour Notepad ++ 5.6.x vers 5.9.8, et maintenant je peux enregistrer très bien la recherche et le remplacement. Très agréable!

Bien sûr, l'édition manuelle shortcuts.xmlaprès l'enregistrement est inévitable car il n'y a pas d'éditeur de macro, et vous avez besoin d'une concentration super humaine pour enregistrer une énorme macro sans faille. (Assurez-vous que toutes les instances de Notepad ++ sont fermées avant de modifier ce fichier.)

Redsandro
la source
1

Moi aussi, je n'ai trouvé aucun éditeur de macro (pour manipuler du texte) sur Notepad ++ (bien que Notepad ++ offre peu de fonctions intégrées). Mais maintenant, il existe un plugin disponible pour créer des macros sur Notepad ++. Ce plugin s'appelle ' Python Script ' (avec une bonne documentation et des exemples) à travers lesquels vous pouvez écrire n'importe quel type de macros car avec ce plugin, vous avez presque un contrôle total sur l'éditeur et Notepad ++ lui-même. Si vous avez des connaissances de base sur python, vous pouvez commencer à écrire des macros à l'aide de ce plugin (la documentation de ce plugin lui-même couvre une syntaxe de base de python pour les débutants).

Vous pouvez rechercher et remplacer et effectuer presque n'importe quel type d'opération en tant que macro en utilisant ce plugin.

Voici le lien pour plus d'informations: http://npppythonscript.sourceforge.net/

Sandeep
la source