Kann ich in einem Notepad ++ - Makro suchen und ersetzen?

17

Ich versuche, ein Makro in Notepad ++ zu erstellen, mit dem ich einige Standard-Suchen & Ersetzen ausführen kann. Ich kann das Makro dazu bringen, alles zu tun (Zeilen hinzufügen, Zeichen hinzufügen), außer Suchen und Ersetzen.

Ich kann die Dateien zum manuellen Bearbeiten des Makros nicht finden.

Hat es jemals jemand geschafft, ein Makro in Notepad ++ zu erstellen, das Suchen und Ersetzen ausführt? Wie?

PS: Ich bin nicht an anderen Tools interessiert, die dies ausführen können - ich kenne mich mit Perl, vi (m), UltraEdit, sed und awk aus - ich habe mich nur gefragt, ob Notepad ++ dies kann.

Konerak
quelle

Antworten:

13

Ja, Sie können, ich habe gerade versucht, ein neues Makro aufzunehmen, habe gesucht und ersetzt und die Aktion erfolgreich gespeichert. Wenn ich das Makro abgespielt habe, hat es dieselbe Aktion zum Suchen und Ersetzen ausgeführt.

Ich bin kein Experte für Notepad ++ - Makros, aber ich vermute, Sie sind ... Ich habe eine zufällige Datei geöffnet und ein Makro namens test erstellt. Es suchte nach einem Wort namens "snip" und ersetzte es durch "blaa".

Beim Öffnen der shortcuts.xmlDatei nach dem Schließen von Notepad ++ wird das folgende neue Makro angezeigt:

<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>

Dies wurde getestet und funktioniert auf meinem Computer. Ich kann diese Datei manuell ändern und die Änderungen werden wiedergegeben und funktionieren in Notepad ++.

Bitte beachten Sie jedoch, dass die shortcuts.xmlDatei (in Ihrem Appdata-Ordner) nur beim Öffnen / Beenden von Notepad ++ geladen und gespeichert wird.

William Hilsum
quelle
Vielen Dank. Ich habe die Datei gefunden, aber die Aufnahme hat immer noch nicht funktioniert. Ich habe die Datei bearbeitet (natürlich nicht mit N ++) und deinen Snipped eingefügt. N ++ hat das Makro erkannt, aber es hat nichts erfolgreich ersetzt - ich denke, es muss eine unerfüllte Abhängigkeit sein, die mich am Aufnehmen / Abspielen hindert.
Konerak
1
Ich habe nur Notepad ++ und keine speziellen Addons (von Ninite installiert). Vergewissern Sie sich, dass Sie die neueste Version verwenden. Wenn dies jedoch nicht funktioniert, liegt möglicherweise ein Problem mit Ihrer Installation vor.
William Hilsum
Ich war nach einer "Suchen und Ersetzen in allen Dokumenten" -Funktion in der Lage, es mit dem obigen Beispielcode mit zwei geringfügigen Änderungen erfolgreich zu produzieren: Die lParamobige "768" wurde zu "2" und die lParam"1608" wurde zu "1635". Ansonsten hat es super geklappt! (Notepad ++ 5.9.2)
Mike
Ich benutze v7.6 und konnte ein Makro zum Suchen und Ersetzen aufzeichnen. Es erzeugte die gleiche Definition in shortcuts.xml. Das Makro funktionierte jedoch erst, nachdem ich Notepad ++ geschlossen und das Programm erneut geöffnet hatte. Ich habe nachgesehen shortcuts.xml, um das, was aufgezeichnet wurde, durch Ihr Beispiel zu ersetzen, und festgestellt, dass nichts Neues in die Datei geschrieben wurde. Dann erinnerte ich mich an Ihren Hinweis, dass Verknüpfungen nur geladen und gespeichert wurden, wenn das Programm geöffnet und geschlossen wurde. Also danke @WilliamHilsum für diesen super hilfreichen Tipp. Ich hätte die Anstrengung ohne sie aufgeben können.
Adam Porad
6

Ich habe vorher festgestellt, dass das auch bei mir nicht funktioniert hat. Aber dann habe ich von Notepad ++ 5.6.x auf 5.9.8 aktualisiert, und jetzt kann ich das Suchen und Ersetzen problemlos aufzeichnen. Sehr schön!

Natürlich ist die manuelle Bearbeitung shortcuts.xmlnach der Aufnahme eines Makros unumgänglich, da es keinen Makro-Editor gibt und Sie eine überdurchschnittliche menschliche Konzentration benötigen, um ein großes Makro fehlerfrei aufzunehmen. (Stellen Sie sicher, dass alle Instanzen von Notepad ++ geschlossen sind, bevor Sie diese Datei bearbeiten.)

Redsandro
quelle
1

Ich habe auch keinen Makro-Editor (zum Bearbeiten von Text) in Notepad ++ gefunden (obwohl Notepad ++ nur wenige eingebaute Funktionen bietet). Aber jetzt gibt es ein Plugin zum Erstellen von Makros auf Notepad ++. Dieses Plugin heißt ' Python Script ' (mit guter Dokumentation und Beispielen), mit dem Sie alle Arten von Makros schreiben können, da Sie mit diesem Plugin fast die volle Kontrolle über Editor und Notepad ++ selbst haben. Wenn Sie Grundkenntnisse in Python haben, können Sie mit dem Schreiben von Makros mit diesem Plugin beginnen (Die Dokumentation dieses Plugins enthält einige grundlegende Python-Syntaxinformationen für Anfänger).

Mit diesem Plugin können Sie fast jede Art von Operation als Makro suchen und ersetzen .

Hier ist der Link für weitere Informationen: http://npppythonscript.sourceforge.net/

Sandeep
quelle