¿Puedo buscar y reemplazar en una macro Notepad ++?

18

Estoy tratando de crear una macro en Notepad ++ que me permita hacer algunas búsquedas y reemplazos estándar. Puedo hacer que la macro haga todo (agregar líneas, agregar caracteres) excepto buscar y reemplazar.

No puedo encontrar los archivos para editar la macro manualmente.

¿Alguien ha tenido éxito al crear una Macro en Notepad ++ que realiza Buscar y reemplazar? ¿Cómo?

PD: No estoy interesado en otras herramientas que puedan realizar esto: conozco perl, vi (m), UltraEdit, sed, awk yo mismo. Me preguntaba si Notepad ++ podría hacer esto.

Konerak
fuente

Respuestas:

13

Sí, puede, solo intenté grabar una nueva macro, hice una búsqueda y reemplazo y guardó con éxito la acción, así que cuando jugué la macro, hizo la misma acción de buscar y reemplazar.

No soy un experto en Notepad ++ Macros, pero supongo que sí ... Abrí un archivo aleatorio y creé una macro llamada prueba. Buscó una palabra llamada "recorte" y la reemplazó por "blaa".

Abrir el shortcuts.xmlarchivo después de cerrar Notepad ++ revela esta nueva 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>

Esto se prueba y funciona en mi máquina, puedo modificar manualmente este archivo y los cambios se reflejan y funcionan en Notepad ++.

Sin embargo, tenga en cuenta que el shortcuts.xmlarchivo (ubicado en su carpeta Appdata) solo se carga y guarda al abrir / salir de Notepad ++.

William Hilsum
fuente
Gracias. Encontré el archivo, pero la grabación aún no funcionaba. Edité el archivo (no con N ++ por supuesto) y pegué tu recortado. N ++ reconoció la macro pero no reemplazó con éxito nada. Supongo que debe ser una dependencia no satisfecha que me impide grabar / reproducir.
Konerak
1
Todo lo que tengo es Notepad ++ sin complementos especiales (instalado desde Ninite) ... Asegúrese de estar utilizando la última versión, pero si no puede hacer que esto funcione, puede que algo esté mal con su instalación.
William Hilsum
Estaba buscando una función de "buscar y reemplazar en todos los documentos" y pude producirlo con éxito con el código de muestra anterior, con dos cambios menores: el lParam"768" anterior se convirtió en "2" y el lParam"1608" se convirtió en "1635". De lo contrario, funcionó muy bien! (Bloc de notas ++ 5.9.2)
Mike
Estoy usando v7.6 y pude grabar una macro para buscar y reemplazar. Se generó la misma definición en shortcuts.xml. Sin embargo, la macro no funcionó hasta que cerré Notepad ++ y volví a abrir el programa. Busqué shortcuts.xmlreemplazar lo que estaba grabado con su ejemplo, y descubrí que no se había escrito nada nuevo en el archivo. Entonces recordé tu nota sobre los accesos directos que solo se cargan y guardan solo cuando el programa se abre y se cierra. Así que gracias @WilliamHilsum por ese consejo súper útil. Podría haber abandonado el esfuerzo sin él.
Adam Porad
6

Anteriormente descubrí que esto tampoco funcionó para mí. Pero luego actualicé desde Notepad ++ 5.6.x a 5.9.8, y ahora puedo grabar encontrar y reemplazar muy bien. ¡Muy agradable!

Por supuesto, editar manualmente shortcuts.xmldespués de grabar uno es inevitable porque no hay un editor de macros, y se necesita una concentración súper humana para grabar una macro enorme sin problemas. (Asegúrese de que todas las instancias de Notepad ++ estén cerradas antes de editar ese archivo).

Redsandro
fuente
1

Tampoco encontré ningún editor de macros (para manipular texto) en Notepad ++ (aunque Notepad ++ proporciona pocas funciones incorporadas). Pero ahora hay un complemento disponible para crear macros en Notepad ++. Este complemento se llama ' Python Script ' (con buena documentación y muestras) a través del cual puede escribir cualquier tipo de macros, ya que con este complemento, casi tiene control total disponible sobre el editor y el Bloc de notas ++. Si tiene algún conocimiento básico sobre python, puede comenzar a escribir macros usando este complemento (la documentación de este complemento cubre alguna sintaxis básica de python para principiantes).

Puede buscar y reemplazar y realizar casi cualquier tipo de operación como macro usando este complemento.

Aquí está el enlace para obtener más información: http://npppythonscript.sourceforge.net/

Sandeep
fuente