Notepad ++ nuovi nomi di file


2

C'è un modo per avere Notepad ++ generare nuovi nomi di file con la data corrente?

Come questo: YYYY_MM_DD_new1.txt o simili. Attualmente li nomina solo: new1, new2, ecc.

La data nel nome del file funzionerà benissimo con il salvataggio automatico, non ci saranno conflitti di nomi dopo il riavvio di NPP.

Tutto quello che voglio è un modo per memorizzare le sessioni tra riavvii. Voglio salvare automaticamente anche i file senza nome.

Grazie.


È utilizzabile con il plug-in AutoSave o qualcosa di simile?
Joshua Nurczyk

sublimetext salva sessioni
Raystafarian

Sì, per l'uso con il salvataggio automatico. Non mi interessa il sublimetext, grazie. Notepad ++ salva anche le sessioni, semplicemente non assegna nomi di file univoci.
vt.

Risposte:


3

Ho appena fatto questo usando il plugin Python Script per 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 il codice sopra, non appena scrivo Ctrl + N , il nuovo file viene creato e salvato istantaneamente con il nome formattato come definito in 'fmt' sopra. Anche il percorso per il file da salvare è definito sopra; cambialo per adattarlo al tuo ambiente.


A partire dalla v6.7.9.2 della NPP, la virgoletta per "nuovo 1" nel test "se" fallisce, ma sostituendo la virgoletta singola con funzionalità ripristinata con virgolette doppie.
mwoliver

Grande. Ho modificato le condizioni in: notepad.getBufferFilename (args ["bufferID"]) [0: 4] == 'new': e filename: newFilename = ('% s \\% s.txt'% (os.environ [' TEMP '], d_string)) Metti anche questo su startup.py
vt.

1

Notepad ++ ha un plugin Autosave2 che salva i tuoi documenti con un timestamp nel nome del file come questo:

ToDo.txt.2013-04-19 10.13.09

ToDo.txt.2013-04-19 10.14.09

ToDo.txt.2013-04-19 10.15.09


Dalla pagina di Autosave2: Le impostazioni di cui sopra creeranno un nuovo file di backup per "ToDo.txt" in D: \ NPP_ \ Backups come segue (se il testo è stato modificato entro 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. Tuttavia, non voglio copie aggiuntive del file, voglio che il file stesso abbia un nome univoco.
vt.

aah, mio ​​cattivo. Ma le tue esigenze sembrano specifiche, immagino che dovrai convincere qualcuno a creare un plugin che lo faccia per te.
Shekhar

1
L'ho creato. Non ho nemmeno pensato a quello in origine.
vt.

1
hey ottimo lavoro, penso che dovresti pubblicare un link al tuo plugin qui e contrassegnarlo come asnwer
Shekhar

0

Ho provato a utilizzare la risposta di mwoliver e ho ancora avuto problemi a eseguirlo. Ho apportato alcune modifiche e ora funzionerà per qualsiasi formato "nuovo #" anziché solo "nuovo 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])

Ho anche aggiunto il seguente snippet alla fine del file startup.py (dopo il codice sopra) per evitare il "nuovo 1" all'avvio di notepad ++.

if notepad.getCurrentFilename() == 'new 1':
    notepad.new()
    notepad.activateIndex(0,0)
    if notepad.getCurrentFilename() == 'new 1':
        notepad.close()
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.