Posso cercare e sostituire in una macro Notepad ++?


18

Sto cercando di creare una macro in Notepad ++ che mi consenta di eseguire alcune ricerche e sostituzioni standard. Riesco a fare in modo che la macro faccia tutto (aggiungi righe, aggiungi caratteri) tranne cercare e sostituire.

Non riesco a trovare i file per modificare manualmente la macro.

Qualcuno è mai riuscito a creare una macro in Notepad ++ che esegue Cerca e sostituisci? Come?

PS: Non mi interessano altri strumenti in grado di eseguire questa operazione - conosco il mio modo di aggirare perl, vi (m), UltraEdit, sed, awk me stesso - Mi stavo solo chiedendo se Notepad ++ potesse farlo.

Risposte:


13

Sì, puoi, ho appena provato a registrare una nuova macro, ho fatto una ricerca e la sostituzione e ha salvato con successo l'azione, quindi quando ho giocato la macro, ha fatto la stessa ricerca e sostituisce l'azione.

Non sono un esperto di Notepad ++ Macro, ma suppongo che tu sia ... Ho aperto un file casuale e ho creato una macro chiamata test. Cercò una parola chiamata "snip" e la sostituì con "blaa".

L'apertura del shortcuts.xmlfile dopo la chiusura di Notepad ++ rivela questa nuova 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>

Questo è testato e funziona sulla mia macchina, posso modificare manualmente questo file e le modifiche si riflettono e funzionano in Notepad ++.

Si noti tuttavia che il shortcuts.xmlfile (situato nella cartella Appdata) viene caricato e salvato solo all'apertura / chiusura di Notepad ++.


Grazie. Ho trovato il file, ma la registrazione non ha ancora funzionato. Ho modificato il file (non con N ++ fuori rotta) e incollato il tuo frammento. N ++ ha riconosciuto la macro ma non ha sostituito con successo nulla - immagino che debba essere una dipendenza non soddisfatta che mi impedisce di registrare / riprodurre.
Konerak,

1
Tutto quello che ho è Notepad ++ nessun componente aggiuntivo speciale (installato da Ninite) ... Assicurati di utilizzare la versione più recente, ma se non riesci a farlo funzionare, qualcosa potrebbe non funzionare nella tua installazione.
William Hilsum,

Ero alla ricerca di una funzione "trova e sostituisci in tutti i documenti" e sono stato in grado di produrlo con successo con il codice di esempio sopra, con due piccole modifiche: il lParam"768" sopra è diventato "2" e il lParam"1608" è diventato "1635". Altrimenti, ha funzionato alla grande! (Notepad ++ 5.9.2)
Mike,

Sto usando v7.6 e sono stato in grado di registrare una macro per fare ricerca e sostituire. Ha generato la stessa definizione in shortcuts.xml. Tuttavia la macro non ha funzionato fino a quando ho chiuso Notepad ++ e riaperto il programma. Ho cercato shortcuts.xmldi sostituire ciò che è stato registrato con il tuo esempio e ho scoperto che non era stato scritto nulla di nuovo nel file. Poi ho ricordato che la tua nota sulle scorciatoie veniva caricata e salvata solo quando il programma si apriva e si chiudeva. Quindi grazie @WilliamHilsum per quel suggerimento super utile. Avrei potuto abbandonare lo sforzo senza di essa.
Adam Porad,

6

In precedenza avevo scoperto che neanche questo funzionava per me. Ma poi ho aggiornato da Notepad ++ 5.6.xa 5.9.8, e ora posso registrare trova e sostituisci bene. Molto bella!

Naturalmente, la modifica manuale shortcuts.xmldopo la registrazione di uno è inevitabile perché non esiste un editor di macro e hai bisogno di una super concentrazione umana per registrare una macro enorme in modo impeccabile. (Assicurati che tutte le istanze di Notepad ++ siano chiuse prima di modificare quel file.)


1

Anche io non ho trovato alcun editor di macro (per manipolare il testo) su Notepad ++ (sebbene Notepad ++ offra alcune funzioni integrate). Ma ora è disponibile un plug-in per la creazione di macro su Notepad ++. Questo plugin si chiama ' Python Script ' (con una buona documentazione ed esempi) attraverso il quale puoi scrivere qualsiasi tipo di macro poiché con questo plugin hai quasi il pieno controllo disponibile sull'editor e su Notepad ++ stesso. Se hai qualche conoscenza di base su Python puoi iniziare a scrivere macro usando questo plugin (La documentazione di questo plugin copre alcune sintassi di base di Python per i principianti).

Puoi cercare e sostituire ed eseguire qualsiasi tipo di operazione come macro usando questo plugin.

Ecco il link per ulteriori informazioni: http://npppythonscript.sourceforge.net/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.