【问题标题】:Creating template files for Enthought Canopy为 Enthought Canopy 创建模板文件
【发布时间】:2013-11-06 09:11:54
【问题描述】:
我目前正在使用 Enthought 制作的应用程序 Canopy,我要求我制作的每个文件都必须在顶部包含一个注释,说明作者是谁、文件的创建时间和最后一次编辑的时间。
我想知道是否有一种方法,当我在 Canopy 中创建一个新文件(特别是一个 python 文件)时,它可以自动在顶部使用此信息填充文件。同样,如果我在保存文件后重新打开文件,或者在每次新保存时,它会自动使用新的日期时间戳更新评论的相关最后编辑部分。
Enthought 应用程序已建议我将我的问题提交给 Stackoverflow,因此我希望它是适当的。
【问题讨论】:
标签:
python
enthought
canopy
【解决方案1】:
是的,这是提问的正确地方。
canopy 允许您执行此操作以及许多其他类似自定义的方式是使用宏记录器。打开机盖,选择工具 > 录制宏。键入该宏的名称,例如 new_file_with_header。然后在代码编辑器中单击,然后单击 ctrl-n 或 cmd-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()
最终,分配一个尚未使用的键绑定,然后离开。