0

我目前正在使用 Enthought 生产的应用程序 Canopy,我要求我制作的每个文件都必须在顶部包含一个注释,说明作者是谁,文件创建时间和最后编辑时间。

我想知道是否有一种方法,当我在 Canopy 中创建一个新文件(特别是一个 python 文件)时,它可以自动在顶部使用此信息填充文件。同样,如果我在保存文件后重新打开文件,或者在每次新保存时,它会自动使用新的日期时间戳更新评论的相关最后编辑部分。

Enthought 应用程序建议我将我的问题提交给 Stackoverflow,所以我希望它是合适的。

4

1 回答 1

2

是的,这是提问的正确地方。

Canopy 允许您执行此操作以及许多其他类似自定义的方式是使用宏记录器。打开机盖,选择工具 > 录制宏。键入该宏的名称,例如new_file_with_header. 然后在代码编辑器中单击,ctrl-ncmd-n创建一个新文件并在顶部键入您想要的任何内容。然后,工具 > 停止宏录制,然后工具 > 编辑宏。您应该找到您创建的新代码,双击它应该会显示执行它时它将运行的代码。我只用写作就做到了# Hello world,得到:

# -*- coding: utf-8 -*-

def run():
    code_task = get_active_task()
    code_task.new_file(factory_id='canopy.editor.code_editor', editor_type='Python')
    code_editor = code_task.active_editor
    cursor = code_editor.cursor
    cursor.write(u'# Hello world')
    code_editor.autoindent_newline()

好消息是这是普通的 python,所以如果你想添加今天的日期,你可以修改它类似于:

# -*- coding: utf-8 -*-
import datetime
def run():
    code_task = get_active_task()
    code_task.new_file(factory_id='canopy.editor.code_editor', editor_type='Python')
    code_editor = code_task.active_editor
    cursor = code_editor.cursor
    cursor.write(u'# Hello world %s' % datetime.datetime.now().strftime("%H-%M-%S"))
    code_editor.autoindent_newline()

最终,分配一个尚未使用的键绑定,然后离开。

于 2013-11-06T16:22:50.793 回答