Notepad++ 新文件名

Notepad++ 新文件名

有没有办法让 Notepad++ 使用当前日期生成新文件名?

像这样:YYYY_MM_DD_new1.txt 或类似内容。目前它只是命名它们:new1、new2 等。

文件名中的日期与自动保存配合得很好,NPP 重启后不会出现名称冲突。

我想要的只是一种在重启之间存储会话的方法。我希望自动保存甚至未命名的文件。

谢谢。

答案1

我刚刚使用 NPP 的 Python 脚本插件完成了此操作......

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' 中定义的格式一致。要保存的文件的路径也在上面定义;请根据你的环境进行更改。

答案2

Notepad++ 有一个插件自动保存2它会在文件名中添加时间戳来保存您的文档,如下所示:

待办事项.txt.2013-04-19 10.13.09

待办事项.txt.2013-04-19 10.14.09

待办事项.txt.2013-04-19 10.15.09

答案3

我尝试使用 mwoliver 的答案,但仍然无法运行。我做了一些更改,现在它可以适用于任何“new #”格式,而不仅仅是“new 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 文件的末尾(上面的代码之后),以防止在 notepad++ 启动时出现“new 1”。

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

相关内容