¿Cómo crear una macro en Notepad++ que guarde un archivo con un nombre diferente?

¿Cómo crear una macro en Notepad++ que guarde un archivo con un nombre diferente?

En Notepad++, ¿cómo se puede crear una macro que guarde el archivo actual con un nombre diferente?

Cuando uso la grabadora de macros en Notepad++, no parece registrar ninguna Saveoperación.

Idealmente, me gustaría que Notepad++ guarde el archivo actual en la misma ubicación en la que se abrió, pero elimine los últimos 9 caracteres del nombre del archivo. Por ejemplo, si el archivo actual es:

c:\foo\bar123456789.c

Me gustaría tener una macro de Notepad++ y guardarla como:

c:\foo\bar.c

(sobrescribiendo cualquier archivo con ese nombre)

Ese es el objetivo ideal, pero incluso si puedo conseguir que una macro de Notepad++ se acerque a eso, será una mejora con respecto a realizar esa operación manualmente.

Respuesta1

Puede ejecutar un script de Python dentro del complemento PythonScript.

Si aún no está instalado, siga estoguía

Crear un script (Complementos >> PythonScript >> Nuevo script)

Copie este código y guarde el archivo (por ejemplo replace.py):

import re

# Define the new filename
newFilename = notepad.getCurrentFilename()

# remove up to 9 characters before extension
newFilename = re.sub(r'.{1,9}(?=\.\w+$)', '', newFilename)

# Save current file with new name
notepad.saveAs(newFilename);
  • Abra el archivo que desea cambiar
  • Ejecute el script (Complementos >> PythonScript >> Scripts >> reemplazar)
  • Hecho

Explicación de expresiones regulares:

.{1,9}          # 1 upto 9 any characters
(?=             # positive lookahead, make sure we have after (without capturing)
    \.              # a dot
    \w+             # 1 or more word characters
  $               # end of string
)               # end lookahead

Si haysiempre9 caracteres para eliminar, utilizar .{9}en lugar de.{1,9}

información relacionada