我在Textwrangler / BBedit中打开了许多新文档,我希望它们始终将日期打印在顶部。我希望这是自动的,这样我就不必每次都运行脚本了。
我是BBEdit的新手,但我真的很喜欢Textwrangler,并且已经使用了很多年。我阅读了有关BB的一些文档,并且我认为将某些Applescript附加到事件上可能是可行的方法。但是,列出的事件似乎都不对,我真的不想在现有文档中添加日期。
我发现以下页面是一个很好的起点: http://bbeditextras.org/wiki/index.php?title=Scripting_and_Automation
我还从BB文档中找到了这些相关的钩子: 应用程序附件点
文档附件点
不过,我不知道其中任何一个是否真的合适。我也可以尝试将一些脚本添加到启动文件夹中,但是我不确定该如何说,在所有打开的文档中添加一个日期。我以前从未做过applescript,所以这是一个反复试验的结果。
我已经尝试过自行运行此代码,并且可以正常运行:
tell application "BBEdit"
tell text window 1
select insertion point after (last character)
set selection to ((current date) as string)
end tell
end tell
关于如何使上述代码在文件创建时执行,我有些迷茫。
答案 0 :(得分:0)
打开脚本编辑器并将以下代码粘贴到新的脚本文档中:
use BBEdit : application "BBEdit"
use scripting additions
on documentDidOpen(doc)
set n to the doc's name
set t to the doc's text as string
if n does not start with "untitled text" then return
if t's length > 0 then return
set the contents of the doc to (the (current date) as text) ¬
& linefeed & linefeed
end documentDidOpen
将其保存为类型script
(扩展名.scpt
),并将其命名为Document.documentDidOpen.scpt
。直接将其保存,或随后将其移动到文件夹~/Library/Application Support/BBEdit/Attachment Scripts/
中;如果该文件夹不存在,请创建它。
重新启动 BBEdit 应该没有必要,但也不会造成伤害。现在,无论何时创建新文档( 任何 类型的文档),都将以当前日期和时间为标题。
答案 1 :(得分:0)
尝试使用BBEdit的“将脚本附加到菜单项”功能(v11用户手册的第295页)。简而言之,如果您使用基于菜单/命令的名称将脚本保存到“菜单脚本”文件夹,则在选择该菜单项时将运行该脚本。因此,在您的情况下:
使用文件名“ New•Text Document”将下面的脚本保存到BBEdit的Menu Scripts文件夹中。
tell application "BBEdit"
set cDate to ((current date) as text)
make new document with properties {contents:cDate}
end tell
顺便说一句,通常可以避免在插入点上使用选择,例如:
tell document 1 of application "BBEdit" to set text of ¬
first insertion point of text 1 to ((current date) as text)
在第二个“问题”场景中,您可能会以此循环浏览所有现有窗口,例如:
tell application "BBEdit"
set tdCount to count of text documents
repeat with i from 1 to tdCount
set text of first insertion point of text 1 of ¬
text document i to ((current date) as text) & linefeed
end repeat
end tell