2

Есть ли способ, чтобы Notepad++ генерировал новые имена файлов с текущей датой?

Примерно так: YYYY_MM_DD_new1.txt или аналогичный. В настоящее время он просто называет их: new1, new2 и т.д.

Дата в имени файла будет отлично работать с автосохранением, не будет никаких конфликтов имен после перезапуска АЭС.

Все, что я хочу, это способ хранения сеансов между перезапусками. Я хочу автоматически сохранять даже безымянные файлы.

Благодарю.

3 ответа3

3

Я просто сделал это с помощью плагина Python Script для АЭС ...

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])

С помощью приведенного выше кода, как только я наберу Ctrl+N, новый файл будет создан и сохранен мгновенно с именем, отформатированным так, как определено в «fmt» выше. Путь для сохраняемого файла также определен выше; измените его в соответствии с вашей средой.

1

Notepad ++ имеет плагин Autosave2, который сохраняет ваши документы с отметкой времени в имени файла, например:

ToDo.txt.2013-04-19 10.13.09

ToDo.txt.2013-04-19 10.14.09

ToDo.txt.2013-04-19 10.15.09

0

Я попытался использовать ответ mwoliver и все еще испытывал затруднения при его запуске. Я сделал некоторые изменения, и теперь, это будет работать для любого «нового #» формата вместо просто "нового 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])

Я также добавил следующий фрагмент в конец файла startup.py (после приведенного выше кода), чтобы предотвратить появление "нового 1" при запуске notepad++.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .