BBEDIT 8

所有应用程序都是软件;但并非所有的软件都是应用程序,关键的区别在于用户界面在应用程序开发中的重要性。到套用爱德华·塔夫特的话,用户界面应用程序-而大多数非应用程序软件甚至用户界面。

从程序员的角度来看,所有的软件都只是源代码。从广义上讲,无用户界面后台进程的源代码,如阿帕奇Web服务器非常类似于Agui应用程序的源代码。开发人员与他们生产的软件的关系是抽象的,概念的。当一个艺术家想要创造一个圆圈时,画一个圆。当程序员想要生成一个圆时,他写了几行源代码。掌握这些抽象的能力将程序员与非程序员区分开来。

从用户的角度来看,然而,用户界面的重要性是深远的。对于用户来说,应用程序就是他们能看到的,点击,与…互动。用户与应用程序的关系是可接受的,性感。

特定应用程序的原始功能是,对于大多数用户来说,不相关;这是可用性这很重要。无法通过直观方式呈现的功能,可发现的,可用的接口也可能不存在。

对于像文本编辑器这样天生乏味的东西,BBEDIT很受欢迎。但它的吸引力并不普遍:除了那些根本不需要严肃的文字编辑的人,或者只是喜欢其他编辑,有一些信仰bbeditnon的人公开表示,他们对bbedit在Mac文本编辑市场长达十年的统治地位完全困惑。

这种困惑有两个方面,这两种观点都认为,阿根尼对BBedit“界面”的理解使其如此受人喜爱:

  • 一个是美学可用性。一个应用程序用户界面的质量仅仅是一个衡量其外观好坏的指标;即。,“像苹果一样”的状态只意味着对苹果最新的古典水绿色视觉风格的完形:华丽的肖像画,消除混叠类型,鲜艳的原色,以及视觉效果,如透明度、投影,边框边缘,以及平滑的滑动动画小部件。

    这并不是说美学不重要。在聪明的头脑中,找到一种审美上令人愉悦的东西是非常令人满意的。但是审美吸引力只是用户界面设计的一个方面,不是全部-作为一个严肃的工具,不是最重要的方面。比较和对比,说,选择办公室主席。拥有一把看起来不错的椅子当然很好;但是如果你每天要坐在椅子上8个小时或更长时间,人体工程学比美学更重要。

    我不会怀疑bbedit的接口相对简单;但当它不是漂亮的,它不是在尝试。英俊更贴切。窗户的布局,对话,菜单也很精致,很周到。重点不是给你留下深刻印象;重点是让你能完成工作。

  • 第二种观点认为用户界面只在事后才有价值;真正的软件是不充分的实现,而用户界面只是一个包装器。(Cf.April的)RoCO喷雾剂的可用性“。”

    这种观点通常只由那些技术上非常呆板的人来表达,即那种真正看到Mac OS Xas的人带有Mac图形用户界面的Unix,而不是作为带有类Unix基础的themac操作系统的更新版本。他们的问题给了媒体提倡者,总是,有句话是这样说的:“你做了什么?[我最喜欢的开源编辑器]不行吗?”,变量通常是EmacsVI/VIM-或者偶尔吉迪特.

    问题是这不是正确的问题。Emacs,VIM他们的各种衍生产品都是很好的编辑,它有许多强大的功能。他们也很难学习,对外行来说很神秘,他们的人机界面(如yare)与Mac用户认为正常的界面不同。有人会让你相信这就是权力的代价易用的强大的相互排斥。

    bbedit的魅力在于其强大的文本编辑功能和优雅的直观,毫不留情地麦金托什-风格界面-我所说的“界面”不是指表面上的美感,但在更深层的互动意义上。

    这里也值得指出的是,“易于使用”可能不是正确的形容词。一旦你学会使用任何软件包,不管它的用户界面有多神秘,它可以斜面“容易”使用。因此,如果你花时间学习VIM并适应它的按键驱动的界面,你会发现它很容易使用。但这是一个很大的“如果”。Macintosh最吸引人的不是它的易用性,但更确切地说,学习是不容易的。差别很大,但经常被忽视。

简而言之,它的意义不仅仅在于它看起来是什么或者它做了什么,但感觉如何。发布Amajor功能升级时面临的挑战不仅仅是增加bbedit的功能,但是要用Mac的方式来做。

简要介绍使用Emacs或Vim的情况

此外,值得指出的是,具有讽刺意味的是,采用emacs或vim作为主要编辑器的大多数补偿案例不是它们的特性集,但是他们界面.明确地,他们跑的事实到处以几乎完全相同的方式。任何具有aunix-like shell的系统都可以运行这些编辑器,截至2004,每一个重要的桌面操作系统要么带有类似Unix的shell,要么有一个作为免费下载提供。因此,如果你精通Emacs或Vim,你可以相当自信地认为你能在你余生使用的每台计算机上使用它。

如果根据情况或选择同时使用Mac和一个或多个非Mac,能够在同一个系统中使用同一个编辑器是一个很有吸引力的想法——使用相同的按键,捷径,以及定制。

文本编辑习惯根深蒂固。Mac用户被迫定期切换到Windows,请求将bEdit移植到Windows。Windows用户通常会切换到Mac,让bEdit更像他们最喜欢的Windows编辑器(例如超编辑文本板)。而且,我猜,在放弃了印度的一个港口后,以前的bbedit用户开始为超级编辑和文本板的编辑工作纠结。

Emacs和VIM用户,另一方面,只需将它们的配置文件从一台计算机复制到另一台计算机上-无论是Windows,Linux或者麦克-他们就在家里。

BBedit 8.0第一印象

这让我们BBEDIT 8,最新版本的裸机软件的旗舰文本编辑器,两周前大张旗鼓地发布。在我们继续之前,让我们把它放在一边,链接到我的标准I-used-to-work-for-bare-bones-software公开.

首先您会注意到bbedit 8带有一个新的应用程序图标。雄伟的首都B位于大胆的帕拉蒂诺,这是自12年前首次公开亮相以来,贝迪的肖像画的一个标志,但现在却被一些东西所取代,好,有点优柔寡断:

bEdit 8和7图标,并排。

设计界的反应并不友好:

  • 乔恩希克斯

    随着bbedit 8.0的发布,已经推出了最具竞争力的新功能。应用程序图标更新了最奇怪的字体,看起来像是无导数的声学。

    (希克斯弹出一个替代图标,哪一个,不管你怎么看新的BBedit 8图标,更糟的是-不是因为它不吸引人,而是因为它不吸引人。)

  • 安德烈·赫拉西姆丘克

    但是新的bbedit 8.0图标到底是怎么回事?那一定是我见过的最难看的“B”。Italmost看起来像是来自滑稽剧!我们都知道这是多么的灾难。

可以这么说,新图标是版本8最不受欢迎的方面。另一方面,如果图标是对变化最不满的,它很好地说明了应用程序本身。

bbedit 8最重要的新方面不是它的样子,甚至是它的作用,但它是什么在Mac OS 9上运行。事实上,bbedit 8不仅在Mac OS X上运行,需要10.3.5,因为在早期版本的豹中有几个错误。(在10.3.5之前版本的豹下测试了bbedit 8,我可以证明。)

这不仅仅是一个闲置的里程碑——BBedit8的MacOSX-Only特性几乎告诉了它所有的主要新特性。

这并不是说BBedit的最后几个版本没有充分利用Mac OS X-Only功能。例如。,Shell工作表和内置WebKit HTML预览,由于明显的原因,只有在Mac OS X上运行bbedit时才可用。

现在它只在Mac OS X上运行,然而,bbedit 8可以在整个应用程序中充分利用OS X-only功能,包括仅在OS X上可用的uiwidget。对Bedit 8用户界面的大多数添加和更改都与仅限OS X的控件和约定有关。

我认为没有必要对每一个新特性进行全面的概述;裸骨网站做得很好。如果你不知道这些信息,这个完整的更改说明有:超过300个项目符号,跨越27个印刷页。不用说,无论如何,这是一个重要的更新。

多文档界面

最深刻的补充是新的多文档界面,类似于带Safari的选项卡浏览,现在可以在单个bEdit文本窗口中打开多个文档。窗口打开的文档显示在窗口右侧的抽屉中。

因此,与Safari相比,多文档界面更像OmniWeb的“选项卡式”浏览。就像Omniweb一样,bbedit 8允许您将文档从一个窗口拖到另一个窗口。单击状态栏中的图标并关闭文档抽屉。(一个很好的触摸:如果前窗的文档记录器关闭,如果将拖动的文档悬停在状态栏中抽屉切换图标的顶部,它将自动打开。)

B编辑8个文件抽屉。

多文档界面是,当然,完全可选。如果你不感兴趣,您可以愉快地继续使用bbedit,每个窗口只使用传统的一个文档。相反地,一些新的与文档相关的首选项允许您将bEdit配置为总是使用多文档界面,默认情况下,将新的和打开的文档放入“最前面”窗口。

这与以前的版本大不相同,其中每个文本窗口代表一个文档,每一个打开的文档都在它自己的窗口中,但它并不觉得激进。它只是工作,正是你所期望的。你可以忽略它,你可以一直使用它,或者,您可以在需要时使用它。我一直在使用这个功能,因为它在beta测试中首次出现,虽然我倾向于在大多数时候使用传统的一个文档计划(如果不是因为其他原因,而是因为十年的习惯)。我发现多文档界面便于将相关文件分组在一起。

如果你不想放弃屏幕上的不动产来制作文档,您可以将其保持关闭状态,并使用新的导航栏在前窗口中打开的文档之间切换,它看起来和Xcode中的导航栏非常相似。

bEdit 8导航栏。

Unicode和文本编码改进

bbedit 8现在使用阿苏用于文本呈现。在所有以前版本的bbedit中,渲染引擎是使用QuickDraw实现的,一套可以追溯到原始Mac的PIS。这是一个巨大的变革,文本呈现是文本编辑器的核心任务。

如果只使用罗马字符集,你可能不会注意到任何变化——文本编辑和呈现的外观和感觉都和bbedit 7有所不同。新的ATSUI动力引擎在Unicode文本的呈现中闪闪发光。bEdit现在支持多语言-例如中国人,日本人,和英语-都在同一个文件中。如果不需要高级Unicode支持,bbedit的新Atsui渲染引擎和旧的QuickDrawEngine一样工作。如果你这样做了,您现在可以对以前无法处理的任务使用bbedit。对于一小部分bbedit用户,这是应用程序历史上最大的改进之一。

bbedit对文本文件编码格式的处理也有很大的改进。使用“文件”菜单中的“编码”子菜单重新打开,可以手动指定给定文件的文本编码。因此,如果打开使用Windows Latin 1编码保存的文件,但是bbedit显示了Itas Mac Roman,您可以使用正确的编码轻松地重新打开文件。使用bbedit 7,你需要关闭文件,然后使用“打开”对话框重新打开它,使用对话框中的弹出菜单指定文本编码。还有其他方法可以做到这一点(Marc Liyanage的字符集转换Perl过滤器以及米德克斯BBEDIT插件,例如,但是没有什么比新的重新打开使用代码菜单更简单和优雅的了。

文本工厂

bbedit的多文件搜索允许bbedit作为一个批量处理多个文件的生产工具。当然,这不是一个简短的PerlorPython脚本不能做到的——但是如果你认为每个人都可以或者应该学会编程,你错过了要点。

但是一次搜索/替换只能做这么多。如果你需要一些简单的东西,比如在数千个HTML文件中更改版权日期。但是如果你需要把多个位置串在一起,这不再是一步一步的过程。

输入“文本工厂“。文本工厂是一种新类型的文档,其中包含一个或多个操作的列表。您可以很容易地添加或删除类似于在文件夹的“查找”窗口中添加/删除搜索条件的操作:通过每个操作旁边的“+”和“-”按钮。文本工厂在概念上与自动机老虎来了。

工厂窗口的屏幕截图。

bbedit的文本菜单中的许多命令都可用作factryactions,搜索菜单的“全部替换”命令也是如此。您可以更改文件的编码和行尾样式(mac/unix/dos)。对于任何被内置动作覆盖的东西,还可以指定applescriptor shell脚本(perl,蟒蛇,红宝石,猛击,作为一个行动项目。

您可以对单个文档窗口执行文本工厂,但当批量处理文件时,就有了动力。如果您经常对多个文件执行相同的重复操作,文本工厂可能能够自动化整个过程,没有脚本。

即使您对脚本感到满意——无论是使用applescript还是shell语言——文本工厂对于批处理仍然有可能。如果编写脚本作为textfactory操作,脚本只需要一次处理单个文件的文本,从编写代码到执行文件夹并循环,打开,并保存文件——即使在Perl中,这也会给屁股带来轻微的疼痛。

多文件文本工厂处理还可以利用BBedit多文件搜索中使用的相同的过滤机制,使基于文件名等属性的工厂处理更容易受到限制,修改日期,和标签。

未来一个明显的改进是允许文本因子保存为“水滴”,也就是可以在查找工具中将文件和文件夹拖动到的小型应用程序。Adobe Photoshop和ImageReady允许将其提取保存为液滴,在一次处理多个文件时调用tem是一种方便的方法。

多文件搜索

说到多文件搜索,bbedit强大的“发现”对话框已经得到了改头换面。打开多文件搜索现在会在对话框左侧打开一个抽屉。抽屉中包含搜索目标的列表:所有打开的文档,最近搜索的文件夹,以及在bbedit的首选项中配置的每个HTMLWeb站点。它比它所取代的弹出式菜单组织得更好,更方便。

另外,多文件搜索现在在自己的线程中运行,这意味着当你继续在bbedit中工作时,搜索可以在后台运行。即使我运行的大多数搜索只需要几秒钟就可以运行,当我进行长时间的搜索时,这是一个很好的改进。

无代码语言模块

我之前提到过这个特性,当我释放我的Apache配置语言模块。在8中的所有新特性中,这可能是最值得得到“它是关于时间”响应的一个。在版本8之前,BBEDIT语言模块需要用C/C++编写插件。这样做的好处是,bbedit的编译语言模块既强大又快速。缺点是大多数人不愿意或不能自己创造。

大多数文本编辑器采用相反的方法,和只有支持纯文本格式的语言模块。既然BBedit同时支持这两个方面,它应该提供最好的两个世界的经验。

然而,BBedit8.0的无代码语言模块机制目前存在一些不足。这不仅仅是对编程语言的偏见,对功能之类的东西有很好的支持,字符串分隔符,和关键字。不太好用的是标记语言。(像,说,降价。)当前的CLM机制不接受标签等内容,而且它不允许使用regexpatterns来匹配语言结构。

也不允许将一种语言嵌入另一种语言,waybedit的HTML内置语言模块支持其他语言的内联块,比如PHP,ASP和CSS。

插件

说到编译插件,bbedit 8现在支持用xcode编译的插件(即马赫-O双星)。以前,bbedit要求plug inst是cfm二进制文件,这实际上意味着它们必须被编译成数据转换器。这种限制基本上消除了发展中的业余爱好者水平的障碍,再加上十年前用插件处理的许多文本挖掘任务现在更容易用Perl或Python编写。bbedit 8仍然支持旧式cfmplug-ins,唯一的限制是它不再支持不支持Unicode的插件指令。

也,以前随bbedit一起提供的一组插件现在在文本菜单中生成:添加/删除行号,前缀/后缀行,排序行,处理重复行,以及包含的工艺管线。这与其他第三方插件被8.0中的其他新功能所取代的事实相结合,没有插件(语言模块除外)。过时插件的示例:bbtidy(现在可以通过bbedit的标记菜单使用html tidy)和midex(由于前面提到的使用encodingsub菜单重新打开,因此无需长时间)。我有一个几年前为自己写的插件,但没有删除,愚蠢的引用,它已被文本菜单中的新拉直引号命令废弃。

我很感兴趣的是,是否对Xcode的支持会导致插件和编译语言模块开发的激增。我猜插件不会——Unix过滤器已经吃过午饭了——但是编译语言模块会。

支持文件

通过放弃对Mac OS 9的支持,bbedit现在能够完全支持OS-X样式的支持文件约定:

  • 应用程序支持文件夹现在命名为“bbedit”,而不是“bbedit支持”。更重要的是,现在它支持适当的域分层,我的意思是你可以放一个“bbedit”支持folderin/库/应用程序支持/,它将提供给运行bbedit的机器上的任何用户。但是每个用户也可以在应用程序支持文件夹的ir用户库文件夹中有自己的bEdit支持文件夹,除顶层库文件夹中的项目外,还将使用其中的项目。

  • 自定义键击快捷键,指定给小程序脚本、词汇表项等项,Unix过滤器不再存储在每个单独文件的源分叉中。相反,自定义击键与文件分开存储,与常规菜单项的自定义菜单键快捷方式类似。原因之一是用户可能没有足够的权限写入顶级库文件夹中的文件。另一个原因是,它使bbedit能够更好地识别和预防击键冲突。

  • bbedit现在使用OSX的内置首选项系统。因此有一个包含您的首选数据的'com.barebones.bbedit.plist'文件,而且,如有必要,您可以使用默认值命令行工具——或者您可以使用bbedit本身对plist文件的副本进行黑客攻击。还有一个“com.bareboons.bbedit.preferrencedata”文件夹(这样命名,它就位于finder中常规首选项文件的旁边)。不保存在常规prefs文件中的containinguser首选项-包括保存的grep模式,文件过滤器,和S/FTP书签。

文档状态

文件状态为文本文件特定元数据;对于bbedit,这包括窗户的位置和尺寸等,横杆的位置,当前文本选择范围,以及用于保存文件的文本编码。在所有以前版本的bbedit中,状态数据存储在每个文档的资源叉中。这项技术是首创的,我相信,通过MPW(和BBedit的国家资源是MPW的一部分)。

这个计划相当聪明,在旧的MacOS世界里工作得非常好。唯一的事本质的是存储在数据分叉中的文档的实际文本。通过将状态信息存储在源分叉中,您可以通过将它从OneResourceForkSavy介质传递给另一个介质来保存它。把它发给Windows或Unix上的某个人,国家数据会丢失,但Datafork中的实际文本不会受到影响。

在Mac OS X的新世界里,然而,在ResourceForks中存储状态数据有显著的缺点。首先,资源分叉不通过版本控制系统(如cvs或subversion)实现往返。它还导致文件存储在不支持多个分叉的文件系统上的问题,如WebDAV或UFS。

出于这些原因和其他原因,bbedit 8已经切换到一个完全新的系统来存储文档状态。不是在每个文件中存储状态数据,您将得到一个单独的首选项文件,其中包含您编辑的每个文件的状态信息。它存储在新文件insidecom.bareboons.bbedit.preferrencedata中:“document state.plist”。

这就解决了上述所有关于资源fork stateinfo的问题—您可以将文件提交到cvs中,查看新版本,将保留该文档的状态设置。如果您在一个cvsrepository中的同一组文件上与多个合作者合作,每个人都可以为每个文件维护自己的状态设置。

这并不是说新系统没有坏处。新的集中式状态数据库是脆弱的-它引用单个的filesby,在所有的事情中,硬编码的路径名。因此,如果重命名或移动文件,B它失去了它的状态。把它移回去,政局就回来了。

这显然是一种权衡。对于在跨平台环境中工作或依赖于非资源分叉工具的任何人,新闻系统显然工作得更好。然而,对于资源分叉状态存储没有造成问题的任何人,新系统可能无法正常工作,尤其是对于那些习惯于在你改名时保持状态的人来说,移动,或者复制文件。

基于Mac OS X技术的其他杂项改进

  • bbedit现在可以选择支持在预览页面之前在您自己的计算机上通过Apache Web服务器运行页面。因此,您可以预览PHP支持的页面,预览将显示实际的HP渲染输出。Mac OS X的每一个拷贝上都有世界级的Web服务器,为什么?用它吗?

    [更新: 杰瑞·金德尔指出本地预览服务器不需要在您的计算机上运行-它可以是任何您可以通过文件共享(smb、appleshare、WebDAV)。因此,在sharedstaging服务器上工作的团队成员可以使用临时服务器预览他们正在“实时”工作的页面。非常酷。

  • bbedit现在使用mac os x的内置拼写检查器。优点不是系统的拼写检查特别好,但是,贝迪特的旧的内置检查器在今天相当笨拙和恼人。bEdit还不支持您键入时的检查,但它确实使用了标准的拼写调色板,并在文档窗口本身的拼写错误下加下划线。(系统的拼写调色板莫名其妙地没有正确的“全部”按钮,所以也不例外。希望能修好,无论是10.4版的苹果,还是未来更新到bbedit的准系统。)

  • bEdit现在使用系统的字体面板来选择当前文档的显示字体和选项卡宽度。

其他值得一提的细节

  • 除了BBEDIT使用bbedit 6.5开始发货的命令行工具,bbedit介绍了巴布迪用于比较文件和文件夹内容的工具。这完全过时了同名Perlscript两年前我玩了一把,裸骨的新工具和我的剧本一样,加上更多。

  • bbedit 8引入了几种新的文本颜色首选项,包含一个选项,用于微妙地突出显示当前行。它还允许您为选择突出显示指定自定义颜色,独立于系统预置中设置的系统范围设置-如果您决定将深色背景与浅色文本一起使用,这将非常有用。

  • 当bbedit's balance while typing选项为on时,每当你键入一个不平衡的右括号,括号,或智能报价。在旧的Mac操作系统中,此通知确认屏幕顶部菜单栏短暂闪烁的形式。很容易注意到,但足够微妙,以免烦人。在MacOS X上,然而,在macos9和更早版本下刷新菜单栏的api调用有一些不同:它会短暂地刷新entirescreen。很明显,在许多用户看来,值得注意的。

    bbedit 8提供了一个更像OS-X的通知:一个透明状态窗口,可以淡入和淡出(与更改音量或显示亮度时系统显示的窗口类似)。

    不匹配字符通知窗口的屏幕截图

    非常友好的接触,如果不匹配的字符本身就是mart引号,bbedit使用直引号来分隔通知消息中的字符。

    不匹配字符通知窗口的屏幕截图

定价和折扣

新许可证的价格已经提高到199美元,但在10月底,bbedit 8的旧价格为179美元。从版本7升级为49美元,以及从任何以前的版本只有59美元。另外,BBedit长期的“交叉等级”折扣仍然存在:Dreamweaver的所有者,格雷夫而bbedit-lite只需129美元就可以购买bbedit。(是的,B迪特莱特,免费提供。不,我眼睛里没有东西-我眨眼ING)

其他地方的评论