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.