- Las macros de Notepad++ permiten grabar y reproducir acciones para automatizar tareas repetitivas sin necesidad de programar.
- Es posible guardar, editar a bajo nivel en shortcuts.xml y compartir macros entre instalaciones para mantener un entorno de trabajo coherente.
- La combinación de macros, autocompletado y plugins como QuickText o TextFX incrementa notablemente la productividad.
- Para automatizaciones más avanzadas que superan las macros nativas, los plugins de scripting ofrecen un nivel extra de control.
Si utilizas Notepad++ a diario para programar, editar logs o tocar archivos de texto largos, las tareas repetitivas pueden hacerse eternas. Borrar espacios, aplicar siempre el mismo buscar y reemplazar, añadir trozos de código una y otra vez… todo eso se traduce en tiempo perdido. Por suerte, Notepad++ incluye un sistema de macros y automatización muy potente y sencillo que mucha gente ni siquiera sabe que existe.
A lo largo de esta guía vamos a ver paso a paso cómo grabar, guardar, reproducir y afinar macros en Notepad++, cómo editarlas a mano en su archivo de configuración, cómo ejecutarlas múltiples veces, y también qué límites tienen. Además, verás trucos prácticos, soluciones a problemas típicos (como el caso de quien quiere clonar bloques de código cambiando solo una palabra, por ejemplo “diamond”), y alguna mención a plugins útiles para ir más allá cuando las macros nativas se quedan cortas.
Qué es una macro en Notepad++ y para qué sirve
En Notepad++, una macro es básicamente una grabación de las acciones que realizas sobre el texto: movimientos del cursor, selecciones, escritura, borrados, búsquedas, reemplazos y muchas de las órdenes del menú. Una vez grabada, puedes reproducir esa secuencia tantas veces como quieras, evitando tener que repetir manualmente los mismos pasos.
Esto permite automatizar procesos muy mecánicos y tediosos como: formatear bloques de código, limpiar líneas con espacios sobrantes, aplicar la misma operación de buscar y reemplazar en distintas zonas del documento, o preparar plantillas que escribes a menudo (por ejemplo, una estructura básica HTML o un típico bloque de código PHP).
La gran ventaja es que no necesitas saber programar ni usar scripts complejos. Todo se hace a golpe de ratón y teclado: inicias la grabación, trabajas como lo harías normalmente, paras la grabación y ya tienes tu macro lista para reproducirla. Notepad++ integra este sistema de forma nativa desde hace mucho tiempo, sin necesidad de plugins adicionales.
Conviene tener en mente que las macros son sensible a la posición del cursor. Es decir, la reproducción se hace relativa al lugar donde tengas el caret (el punto de inserción) cuando le das a ejecutar, así que una parte del truco está en colocar bien el cursor antes de lanzarla.
Cómo grabar, detener y reproducir una macro en Notepad++
El flujo básico para trabajar con macros es muy simple: grabar, parar y reproducir. Aun así, hay ciertos detalles que conviene controlar para no llevarte sorpresas.
Para iniciar una grabación, ve al menú Macro > Comenzar grabación o pulsa el botón con el típico icono de «rec» en la barra de herramientas. Desde ese momento, todas las acciones que hagas sobre el documento se registran: te muevas con las flechas, teclees texto, borres, uses Buscar/Reemplazar, etc.
Cuando hayas terminado la secuencia que quieres repetir, vuelve al menú Macro > Detener grabación o pulsa el botón de parada en la barra de herramientas. Notepad++ detendrá la captura y la macro quedará almacenada en una memoria temporal, lista para ejecutarla.
Existe un atajo muy cómodo para alternar entre grabar y dejar de grabar: Ctrl+Shift+R. Este atajo se puede cambiar desde el asignador de atajos (Shortcut Mapper), pero viene así por defecto y suele ser suficiente para la mayoría de usuarios.
Para reproducir la macro que tienes en ese buffer temporal, solo tienes que ir al menú Macro > Reproducir o darle al botón de «play». La secuencia se ejecutará una vez desde la posición actual del cursor, así que conviene que lo coloques en el punto de inicio adecuado antes de darle al play.
Guardar una macro, asignarle atajos y gestionarlas
Mientras no guardes la macro que acabas de grabar, solo existe en la memoria temporal. Si empiezas a grabar una nueva, la anterior se pierde. Por eso, cuando grabes una secuencia que veas que vas a usar a menudo, lo ideal es guardarla inmediatamente.
Para conservarla, ve a Macro > Guardar la macro grabada…. Se abrirá una ventana donde podrás ponerle un nombre descriptivo y, si quieres, asignarle una combinación de teclas para lanzarla al vuelo (por ejemplo, Ctrl+Alt+M). Esto hace que en el día a día el uso de macros sea casi tan natural como usar un atajo de copiar/pegar.
Una vez guardada, la macro aparece en la parte inferior del menú Macro. Desde ahí puedes ejecutarla con un clic o escogerla cuando quieras ejecutar una macro varias veces. Además, podrás ver todas tus macros en el Gestor de atajos, al que se accede desde Macro > Modificar acceso rápido o eliminar macro…, que abre el conocido Shortcut Mapper en la pestaña de macros.
En ese gestor es posible cambiar la combinación de teclas o eliminar macros que ya no uses. Lo que no puedes hacer desde la interfaz es modificar la secuencia interna de pasos de la macro; para eso hay que ir al archivo de configuración, que veremos en un apartado más adelante.
Otro detalle importante: Notepad++ solo guarda las macros en disco cuando se cierra. Aunque hayas pulsado «Guardar macro», el contenido real no se escribirá en el archivo de configuración shortcuts.xml hasta que cierres el programa. Si abres ese XML mientras Notepad++ sigue funcionando, puede parecer que tu macro «no existe», pero en realidad está pendiente de volcarse al cerrar.
Ejecutar una macro varias veces o hasta el final del archivo
Muchas macros solo tienen sentido cuando se aplican en bloques grandes de texto. Por ejemplo, si quieres limpiar espacios en blanco al final de cada línea, renombrar patrones repetidos o aplicar la misma transformación en todas las entradas de un log.
Notepad++ permite repetir una macro cómodamente desde Macro > Ejecutar una macro varias veces…. Al seleccionarlo, se abre un diálogo donde puedes elegir si quieres ejecutar la macro temporal (la última grabada) o cualquiera de las macros guardadas que tengas en tu lista.
En ese cuadro puedes indicar cuántas repeticiones exactas quieres (por ejemplo, 10 veces), o bien optar por que se ejecute hasta que el cursor alcance el final del archivo, que es lo ideal cuando el objetivo es recorrer todo el documento aplicando la misma acción línea por línea.
Este sistema resulta muy útil para refactorizaciones masivas, limpieza de ficheros, adición de prefijos o sufijos a muchas líneas, o cualquier tarea de «pasadas» sucesivas sobre un documento largo. En cuanto le coges el truco, se vuelve un recurso básico para procesar textos en cadena.
Edición avanzada de macros: archivo shortcuts.xml
Una de las grandes bazas de Notepad++ frente a otros editores es que sus configuraciones se pueden toquetear a bajo nivel. Todo lo que haces mediante menús acaba reflejado en archivos XML, y las macros no son la excepción.
Las macros guardadas se almacenan en el archivo shortcuts.xml, que suele estar en %AppData%\Notepad++ en instalaciones normales de usuario. En versiones portables o ejecuciones como administrador, puede encontrarse también en la propia carpeta de instalación, dentro de Program Files o Program Files (x86).
Dentro de ese archivo verás un bloque <Macros>...</Macros> que contiene cada macro entre etiquetas <Macro>...</Macro>. Ahí se detalla el nombre, el atajo de teclado y la lista exacta de acciones que ejecuta la macro, cada una como un elemento <Action ... /> con distintos parámetros (type, message, wParam, lParam, sParam, etc.).
Un ejemplo típico podría ser algo del estilo: una macro llamada «Trim Trailing Space and Save» con varias acciones que primero limpian espacios al final de cada línea y luego lanzan la orden de guardado del documento. Otra macro, quizá grabada por ti (por defecto puede llamarse «RecordedMacro»), tendrá a lo mejor una sola acción que inserta un carácter o un texto concreto.
Si quieres modificar una macro a mano, puedes copiar su bloque <Macro>…</Macro> y editarlo: cambiar el nombre, el atajo, ajustar alguna acción concreta o incluso fusionar pasos de varias macros en una sola. Eso sí, hay que tener cuidado con la estructura XML y con los valores de cada acción para no romper nada.
Antes de tocar nada, es muy recomendable hacer una copia de seguridad del archivo shortcuts.xml. Así, si algo sale mal (por ejemplo, un error de sintaxis o una acción mal definida), siempre podrás restaurar el archivo anterior y evitar que Notepad++ se quede sin tus macros al reiniciar.
Cómo encontrar, copiar y hacer copia de seguridad de tus macros
Cuando cambias de ordenador, reinstalas Windows o quieres compartir tu «pack» de macros con otra persona, lo que necesitas en realidad es mover o clonar el archivo shortcuts.xml, o al menos la parte que contiene tus macros.
En una instalación estándar, podrás localizar este archivo yendo en el Explorador de archivos a la ruta %AppData%\Notepad++. Basta con escribir esa ruta en la barra de direcciones y pulsar Enter, incluso si la carpeta AppData está oculta. Ahí verás el shortcuts.xml con todas tus combinaciones de teclas y macros.
Si utilizas la versión portable de Notepad++ o lo ejecutas en modo administrador, es posible que el archivo esté en la propia carpeta donde tengas el ejecutable, normalmente bajo Program Files o Program Files (x86). La estructura interna es la misma, así que el procedimiento no cambia.
Para transferir only tus macros, puedes abrir el shortcuts.xml de origen, copiar las entradas <Macro>…</Macro> que te interesan y pegarlas en la sección <Macros> del shortcuts.xml de destino. De nuevo, conviene que hagas una copia de seguridad antes de sobrescribir nada.
Ten presente también que, igual que al guardar macros nuevas, los cambios manuales en shortcuts.xml solo se aplican al volver a abrir Notepad++. Si editas el archivo mientras el programa está abierto, es muy probable que al cerrarlo Notepad++ sobrescriba tus cambios con la versión que tenga en memoria.
Limitaciones de las macros nativas y dudas habituales
Las macros en Notepad++ son muy útiles para un montón de tareas de edición, pero no son un sistema de scripting completo. Hay acciones que, por su complejidad o por depender de plugins externos, no se pueden grabar tal cual en una macro.
Por ejemplo, ciertas funciones avanzadas que aportan plugins como PythonScript o NppExec, o acciones que manejan ventanas y elementos fuera del área de texto, no siempre quedan bien registradas en la macro. En esos casos, notarás que la reproducción no hace exactamente lo que esperabas o directamente no hace nada.
Otra limitación importante es que no existe una interfaz gráfica para editar el contenido interno de la macro. Desde los menús solo puedes cambiar el nombre, el atajo de teclado o eliminarla; para tocar la secuencia de acciones necesitas abrir el archivo shortcuts.xml y editarlo a mano, con las precauciones que hemos comentado.
En foros como el oficial de Notepad++ o comunidades tipo Reddit es habitual ver preguntas sobre cómo fusionar macros, cómo arreglar secuencias que dan errores o cómo conseguir que una macro haga algo ligeramente más elaborado. La recomendación general es ir probando con grabaciones sencillas, revisar cómo se guardan en el XML y, si hace falta más potencia, dar el salto a plugins de scripting.
También conviene recordar que cualquier cambio en shortcuts.xml se aplica solo tras reiniciar Notepad++. Si no cierras y vuelves a abrir el editor, puede parecer que la macro no se ha actualizado, cuando en realidad lo que pasa es que el programa sigue tirando de la configuración que cargó al arrancar.
Ejemplo práctico: automatizar modificaciones masivas en bloques de texto
Un caso muy típico en el que se mezclan macros y automatización es cuando tienes un bloque de líneas con un patrón repetido y necesitas generar variantes cambiando solo una parte del texto. Imagina algo como una lista de recetas de un juego, donde todas las líneas contienen la palabra «diamond» y quieres repetir ese bloque para «sapphire», «amethyst», «crystal», etc.
Por ejemplo, podrías tener líneas del estilo:
recipes.remove(<variedcommodities:diamond_gun>);
recipes.remove(<variedcommodities:diamond_battleaxe>);
recipes.remove(<variedcommodities:diamond_trident>); …y así con muchas armas y piezas de armadura.
La idea sería que Notepad++ fuese capaz de duplicar ese bloque, pegarlo unas líneas más abajo y sustituir “diamond” por cada uno de los materiales de una lista: sapphire, amethyst, crystal, fire_stone, water_stone, leaf_stone, thunder_stone, sun_stone, moon_stone, dawn_stone, dusk_stone, platinum, silver…
Con macros puras, notarás rápidamente una limitación: las macros no entienden listas ni bucles condicionales. Lo que hacen es repetir la misma secuencia tal cual. Si tu macro se basa en «copiar una palabra de la lista y pegarla sobre todas las apariciones de diamond», al reproducirla solo pegará lo que tenga en el portapapeles, sin avanzar automáticamente por la lista de materiales.
En estos casos, la macro puede ayudarte a automatizar el formato básico (copiar el bloque de líneas, pegarlo debajo, lanzar un Buscar/Reemplazar para cambiar diamond por una palabra concreta). Pero tendrás que lanzar la macro una vez por cada material, cambiando manualmente la palabra de reemplazo o ajustando la grabación para que use un valor distinto cada vez.
Si lo que buscas es algo más dinámico (un bucle que recorra toda la lista y genere automáticamente un bloque por cada material), ahí ya se suele recomendar ir a soluciones basadas en scripting (por ejemplo, con PythonScript) o usar herramientas externas que generen el texto, porque la macro estándar de Notepad++ no está pensada para esa lógica avanzada.
Otros recursos de productividad en Notepad++: plugins y funciones útiles
Las macros no son la única forma de agilizar el trabajo en Notepad++. Hay ciertos plugins y funciones de serie que merece la pena conocer si quieres ir un paso más allá en automatización y comodidad.
Uno bastante conocido es QuickText, un plugin de expansión de texto. Con él puedes definir atajos de escritura para un lenguaje concreto (por ejemplo, PHP) y hacer que al escribir una palabra clave y pulsar TAB se despliegue un bloque más grande. Un clásico es teclear «if» y que automáticamente aparezca toda la estructura con paréntesis y llaves.
QuickText también te permite registrar abreviaturas como «php» que se expandan a <?php ?>, o cualquier otro snippet que repitas con frecuencia. Es una forma de automatización más orientada a plantillas de código que a secuencias de edición como las macros.
Otra herramienta que viene de serie pero suele estar deshabilitada es el autocompletado. Puedes activarlo yendo a Configurar > Preferencias > Copias de seguridad/Autocompletar y marcando la casilla de «Habilitar autocompletar en cada entrada». También tienes la opción de mostrar pistas de parámetros de funciones, muy útil cuando trabajas con APIs o librerías que no te sabes de memoria.
Dentro de los plugins clásicos está también TextFX, que ofrece funciones adicionales como autocierre de etiquetas y paréntesis, conversores de texto y embellecimiento de código. Son pequeños añadidos que, combinados con macros y autocompletado, hacen que la experiencia de escribir código sea mucho más ágil.
Por último, aunque no afecte directamente al rendimiento, se puede mejorar la legibilidad del código ajustando el resaltado de sintaxis (Syntax Highlight). Desde Configurar > Configurador de estilo puedes elegir distintos temas de color; uno bastante popular es «Zenburn», con fondo oscuro y colores suaves que cansan menos la vista en sesiones largas.
Cómo sacarle parti do real a las macros en tu día a día
Las macros en Notepad++ brillan cuando las usas para automatizar pequeños infiernos cotidianos. No hace falta que sean secuencias muy elaboradas: a veces, una macro que inserta tu plantilla de cabecera HTML o que limpia los espacios al final de las líneas de un fichero ya te ahorra muchos clics diarios.
Un buen enfoque es observar durante unos días qué acciones repites más a menudo: ¿pones siempre el mismo bloque de comentarios al principio de un script?, ¿reformateas logs con un patrón muy concreto?, ¿aplicas siempre el mismo Buscar/Reemplazar sobre ciertos ficheros? Cada una de esas tareas es una candidata perfecta para convertirse en macro.
Además, como las macros se almacenan en XML, es muy fácil compartirlas con compañeros de equipo. Basta con enviarles el fragmento <Macro>...</Macro> correspondiente, o pasarles directamente tu archivo shortcuts.xml (siempre que no les pises sus propias configuraciones). Así, todo el equipo puede usar los mismos atajos y secuencias.
Para trabajos aún más complejos, donde las macros se quedan cortas, puedes apoyarte en plugins de scripting como PythonScript o NppExec, que te permiten escribir código para automatizar operaciones más inteligentes: recorrer listas, tomar decisiones, hacer cálculos, generar texto dinámico… A costa, eso sí, de necesitar algo de conocimiento de programación.
Con un poco de práctica, verás que combinar macros, snippets tipo QuickText, autocompletado y algún plugin bien elegido puede multiplicar la velocidad con la que editas y transformas archivos. Al final se trata de que el editor haga por ti todo lo que sea repetitivo, y tú te centres en lo que realmente requiere cabeza.
Dominar las macros y la automatización en Notepad++ es una de esas inversiones de tiempo que se amortizan muy rápido: en pocos días notarás que tareas que antes te llevaban minutos ahora las resuelves con un par de teclas, que mover configuraciones entre equipos es tan simple como copiar un XML, y que incluso operaciones tan pesadas como limpiar logs enormes o refactorizar bloques completos de código pasan a ser algo casi mecánico, sin sufrimiento y con mucha menos posibilidad de error humano.