在新的BBEdit文本窗口中一起打开文件

如我的BBEDIT 8评论,BBEdit提供了一些新选项(在preferences窗口的Documents面板中)来控制新的多文档文本窗口的行为。您可以在前窗口中默认打开新文档和打开的文档,或者您可以让它们在默认情况下在新窗口中自己打开(即,就像7号和更早的版本)。

这些选项是完美的,如果你只想要一个窗口与所有打开的文件,或者,如果您想坚持传统的每个窗口模型的文档。

但我想要的是介于两者之间的东西。默认情况下,我希望使用传统的单个窗口模型打开文档。但我也希望能同时打开一组相关文件,一起在一个新窗口-在一个单一的行动从发现。

所以,我写了一个applescript来做这个,我把它命名为“bbedit-opentogether”。我用的是布伦特·西蒙斯的免费专辑Big cat脚本文本菜单插件,所以从发现者那里,我可以简单地选择要打开的文件,然后从“脚本”子菜单中选择它,这是“大猫”添加到查找器上下文菜单中的。和大猫一起使用,复制下面的脚本,将其粘贴到新的脚本编辑器文档中,并将其保存在此处(以“脚本”格式):

~/库/应用程序支持/大猫脚本/文件/

无论默认的文档打开首选项是什么,此脚本都可能很有用。

(更新,2005年3月30日:bbedit 8.1中的脚本改进使得这比bbedit 8.0中的脚本更容易实现。见此处更新了脚本]

资料来源如下:

在主(文件列表)上,告诉应用程序“bbedit”设置w以使新的文本窗口设置show documents drawer of w为true设置show navigation bar of w为true--获取用w创建的无标题文档的ID:设置document id为w的文档1的ID,尝试在w end try中打开文件列表打开--关闭用w:close document id doc_id activate end tellend main创建的无标题文档

这个主要的handler是脚本主循环的习惯用法。如果不想使用big cat,你可以改变主要的打开,并将脚本另存为应用程序,然后可以调用vialag和drop。

这就是它的工作原理。

不管你用的是大猫主要的处理程序或一个打开处理程序,file_list是别名列表,在finder中选择的每个文件(如果您使用的是big cat)或放到脚本应用程序中的每个文件都有一个。

我们首先告诉bbedit创建一个新的文本窗口,并将对该窗口的引用另存为w。然后确保新窗口中的文档绘图器和导航栏都显示出来。

接下来是脚本中唯一有点棘手的部分。当你创建一个新的文本窗口在BBEdit,它自动包含新的无标题文档。无法创建不包含文档的“空”文本窗口;当您关闭窗口中的最后一个文档时,窗口将消失。

所以,现在,我们存储身份证件新窗口中未命名文档的属性。bbedit脚本对象模型中的每个项都有唯一的ID。

下一步,我们告诉bbedit在file_list。不需要循环浏览列表并一次打开一个-事实上,对于一长串文件,告诉bbedit在一条语句中打开列表的效率要高得多。这个在W在我们刚刚创建的新文本窗口中打开这些文件所需的一切。如果我们离开在W,文件将根据您的喜好打开。

在这一点上,我们还有最后一点清理工作要做:关闭在创建新文本窗口时创建的未命名的新文档w。我们不能使用像这样的索引W文档1W文档2,因为我们不知道要关闭的无标题文档的索引号是什么。每个窗口的文档列表都是按字母顺序排序的。这就是为什么我们将未命名文档的ID隐藏起来的原因——因为ID是唯一的。

(无法关闭此文档之前在中打开文件file_list因为它是w当时,所以当文档关闭时,整个窗口都会消失。)

最后,我们使用激活命令将BBEdit弹出到前面。这使每个打开的编辑窗口向前移动;如果您只想弹出新创建的窗口向前,你可以更改激活线到:

告诉w激活

Perl实现

(2004年9月21日增补)

Chris Nandor将上述脚本移植到Perl

我对bbedit允许在同一窗口中打开文件的新功能的看法与JohnGruber的类似。不同之处在于,与使用终端的频率相比,我很少使用finder打开文件。

我写信给[裸骨]要求他们在BBEDIT命令行程序,允许打开多文件到一个窗口,但与此同时,我将djohn的applescript移植到perl(这也允许它被使用,保持不变,用大猫)。

非常有用,如果你从命令行打开文件,另外,这是一个很好的例子,演示了如何使用Chris的胶水:胶水模块。

以前: BBEDIT 8
下一步: 赞助这个