Pregunta Notepad ++ nuevos nombres de archivo


¿Hay alguna manera de que Notepad ++ genere nuevos nombres de archivo con la fecha actual?

Me gusta esto: YYYY_MM_DD_new1.txt o similar. Actualmente solo los nombra: new1, new2, etc.

La fecha en el nombre del archivo funcionará bien con autoguardar, no habrá conflictos de nombres después del reinicio de NPP.

Todo lo que quiero es una forma de almacenar sesiones entre reinicios. Quiero autoguardar incluso los archivos sin nombre.

Gracias.


2


origen


¿Es esto para usar con el complemento AutoSave o algo similar? - Joshua Nurczyk
texto sublime salva sesiones - Raystafarian
Sí, para usar con autoguardado. No me interesa el texto sublime, gracias. Notepad ++ también guarda sesiones, simplemente no asigna nombres de archivo únicos. - vt.


Respuestas:


Lo hice usando el plugin Python Script para NPP ...

notepad.clearCallbacks([NOTIFICATION.BUFFERACTIVATED])
def my_callback(args):
    if notepad.getBufferFilename(args["bufferID"]) == "new  1":
        fmt = '%Y%m%d%H%M%S'
        d = datetime.datetime.now()
        d_string = d.strftime(fmt)
        notepad.saveAs('X:\\Documents\\Notepad++_autosave\\%s.txt' % d_string)
notepad.callback(my_callback, [NOTIFICATION.BUFFERACTIVATED])

Con el código anterior, tan pronto como escribo Ctrl+norte, el nuevo archivo se crea y se guarda instantáneamente con el nombre formateado como se define en 'fmt' arriba. La ruta para guardar el archivo también se define más arriba; cámbielo para adaptarlo a su entorno.


3



A partir de v6.7.9.2 de NPP, la comilla simple para "nuevo 1" en la prueba "si" falla, pero reemplaza la comilla simple con funcionalidad de restauración de comillas dobles. - mwoliver
Estupendo. Modifiqué la condición a: notepad.getBufferFilename (args ["bufferID"]) [0: 4] == 'new': y filename: newFilename = ('% s \\% s.txt'% (os.environ [' TEMP '], d_string)) También ponga esto en startup.py - vt.


Notepad ++ tiene un complemento Autosave2 que guarda sus documentos con una marca de tiempo en el nombre del archivo como este:

ToDo.txt.2013-04-19 10.13.09

ToDo.txt.2013-04-19 10.14.09

ToDo.txt.2013-04-19 10.15.09


1



Desde la página de Autosave2: la configuración anterior creará un nuevo archivo de respaldo para "ToDo.txt" en D: \ NPP_ \ Backups de la siguiente manera (si el texto ha cambiado en 1 minuto): ToDo.txt.2013-04-19 10.13. 09 ToDo.txt.2013-04-19 10.14.09 ToDo.txt.2013-04-19 10.15.09. Aunque no quiero copias adicionales del archivo, quiero que el archivo tenga un nombre único. - vt.
aah, mi mal. Pero sus requisitos parecen específicos, supongo que tendrá que conseguir a alguien para que haga un complemento que lo haga por usted. - Shekhar
Ah. Gracias por la idea - vt.
Lo creé Ni siquiera pensé en eso originalmente. - vt.
hey buen trabajo, creo que deberías publicar un enlace a tu complemento aquí y marcarlo como el siguiente - Shekhar


Intenté usar la respuesta de mwoliver y aún tuve problemas para ejecutarlo. Hice algunos cambios y ahora, esto funcionará para cualquier formato "nuevo #" en lugar de solo "nuevo 1".

notepad.clearCallbacks([NOTIFICATION.BUFFERACTIVATED])
def my_callback(args):
    set1 = set(notepad.getBufferFilename(args["bufferID"]).split(' '))
    filenew = set1.pop()
    filenumber = set1.pop().isdigit()
    setempty = len(set1) == 0
    if filenew == "new" and filenumber and setempty:
        fmtdate = '%Y-%m-%d'
        fmttime = '%H%M%S'
        d = datetime.datetime.now()
        d_string = d.strftime(fmtdate) + ' Notes ' + d.strftime(fmttime)
        notepad.saveAs('C:\\Users\\username\\Desktop\\%s.txt' % d_string)
notepad.callback(my_callback, [NOTIFICATION.BUFFERACTIVATED])

También agregué el siguiente fragmento al final del archivo startup.py (después del código anterior) para evitar el "nuevo 1" en el inicio de Notepad ++.

if notepad.getCurrentFilename() == 'new 1':
    notepad.new()
    notepad.activateIndex(0,0)
    if notepad.getCurrentFilename() == 'new 1':
        notepad.close()

0