Visual SlickEdit:程序员的商业编辑器

制造商:MicroEdge, Inc.
电子邮件:sales@slickedit.com
网址:http://www.slickedit.com/
价格:195 美元
评测人:Larry Ayers
Linux 平台不乏高质量的免费编辑器。商业编辑器若想在 Linux 社区(免费软件传统根深蒂固)吸引潜在客户,就必须功能强大且易于使用。由 MicroEdge 开发和销售的 Visual SlickEdit 正好符合这两个标准。这款编辑器是跨平台的,有适用于所有 Windows 变体、OS/2 和各种 Unix 平台的版本。最近,MicroEdge 发布了 SlickEdit 3.0 版本,为这款已经强大的编辑器带来了多项新的增强功能。与 SlickEdit 最接近的免费同类产品是 GNU Emacs 和 XEmacs,因此在本次评测中,我将使用这两款编辑器作为比较的基准。
与两个 Emacs 变体不同,SlickEdit 严格来说是一个 X 应用程序,尽管它最初是一个字符模式编辑器。字符模式控制台版本仍然可用,但单独销售。
Visual SlickEdit 通过五张软盘提供。安装过程首先将第一张软盘的内容直接解压缩(使用 tar)到一个临时目录中,设置安装二进制文件的执行权限,然后运行该二进制文件。从这时起,系统会询问有关首选路径的问题,最终会提供是否安装未编译的宏文件的选项。这些 *.e 文件对于编辑器的正常运行不是必需的,但如果用户希望修改它们,则可以安装。不安装它们将节省一些磁盘空间。
我认为选择安装目录是一个非常理想的功能,因为每个用户很可能都有一个具有足够空间的不同的分区或目录。完整安装大约占用 18MB 空间。网络安装是可能的,每个用户共享一个公共可执行文件,但使用个人初始化文件和主目录运行程序。
软件附带的 250 页印刷手册编写良好且内容完整,尽管索引良好的在线帮助系统(见图 1)在学习有效使用编辑器时提供了足够多的指导。印刷手册约三分之一是 Slick-C 语言的参考指南,对于需要创建新宏和例程的高级用户来说非常宝贵。
MicroEdge 开发人员为此编辑器编写了一种新的宏编程语言,名为 Slick-C,它源自 C++。语法非常接近 C++,但该语言具有内置功能,这些功能对于构建图形用户界面非常有用。Slick-C 类似于 Emacs LISP,编辑器的许多例程和功能都实现为编译后的宏,由主可执行文件根据需要调用。
Slick-C 的开发人员试图解决 C++ 的几个缺点,例如缺少内置类型。布尔型、字符串型和容器类型在开发编辑功能时可能很有用,而 Slick-C 旨在与这些类型一起使用。与任何特定于应用程序的编程或宏语言一样,缺点是如果需要进行广泛的自定义,则必须学习另一种语言。Slick-C 与 C++ 非常接近,C 或 C++ 程序员的学习曲线不应太陡峭,但仍然存在。
正如 Emacs LISP *.el 文件是 ASCII 文本,为了提高效率而编译成 *.elc 文件一样,Slick-C *.e 文件也可以编译成二进制 *.ex 文件。单独的宏语言的优势在于,可以在不需要新可执行文件的情况下编写新的例程和功能,并且宏例程往往比包含新功能的整个编辑器更容易编写和调试。
剪贴板继承是该语言的一个有趣功能,允许将新代码添加到现有控件,而不会影响原始控件。也就是说,可以将现有对话框的部分复制到剪贴板并粘贴到其他位置;如果将新代码添加到原始对话框,则其后代将继承该代码。
程序员会发现一个有用的功能称为 SmartPaste。这是标准编辑功能的智能、语法感知版本。如果剪切或复制一段代码,然后将其粘贴到另一个源文件中,则粘贴块的缩进将自动与周围代码的缩进匹配。我不知道 Emacs 中是否有等效功能,但显然没有强烈的需求,否则(我猜)可能有人早就编写了一个。
SlickEdit 使用它自己的几个 Unix/Linux 实用程序版本,例如 diff、find 和 grep 等。对于使用 Windows 或 OS/2 版本编辑器的用户来说,此功能可能更受欢迎。在 Linux 下,唯一的优势是界面是通过对话框实现的,并且这些实用程序针对与编辑器一起使用进行了优化。在 3.0 版本中,支持传统的 Unix 正则表达式语法。
包含对各种版本控制系统的支持,并且与 Emacs 编辑器不同,支持各种商业版本控制程序,这对于在商业环境中工作的程序员来说是一个优势。
命令行窗口可用于输入 shell 命令以及本机编辑器命令。如果需要监视输出或需要交互,则可以在单独的终端窗口(例如 xterm)中执行该命令。一些基本的 shell 便利功能,例如别名和命令历史记录,已内置到此界面中。
与各种 Emacs 编辑器(以及少数其他编辑器)一样,SlickEdit 具有增量搜索命令,可以在键入搜索词、短语或正则表达式时查找下一个匹配项。在大多数情况下,搜索会在完全键入所需模式之前找到它,从而加快了过程。
大多数现代集成开发环境(例如 Borland 的 IDE)都允许将编程项目涉及的所有文件作为一个单元进行访问。SlickEdit 包含此功能。SlickEdit 项目包括工作目录、编译/make 命令行以及相关文件列表。支持标记(类似于 Emacs 的 Etags 程序),从而可以快速导航到函数定义和其他编程结构。
语法高亮显示支持做得很好,并且易于配置,再次通过对话框实现。默认安装中包含了几种配色方案,它们为进一步修改提供了良好的起点。
SlickEdit 具有许多实现良好的格式化功能,例如使用 tab 键缩进或取消缩进选定的行。
虽然此编辑器有自己的文件管理器窗口,但在“文件”下拉菜单中找到的最近访问文件列表非常方便。少数其他编辑器(例如 Nedit 和 FTE)也保存了先前会话中打开的文件的类似历史记录,如果有一些文件需要重复加载,这是一个节省时间的功能。
其他一些有用的功能包括
三向文件合并
十六进制编辑
内置拼写检查器和词典(不如 ispell 那么广泛)
拼写检查可以限制为仅源文件中的注释和字符串
通常不可见的字符(例如制表符、空格和行尾字符)可以设置为可见
带有对话框界面的多个剪贴板
预配置的对多种语言的支持
C++ 和 Java 代码美化器
几种语言的语法扩展
最大文件大小为 1 GB
API Apprentice(API 帮助)
在多个文件、缓冲区或目录中搜索和替换
多级代码折叠,允许随意隐藏和显示注释、函数等
易于重新定义的 Enter、Backspace、Delete、Home 和 Tab 键
各种窗口处理方式:平铺(水平或垂直)、层叠或基本 MDI 界面
SlickEdit 非常可自定义,在编辑器可以根据用户偏好进行塑造的范围和多样性方面,可以与 Emacs 和 XEmacs 相媲美。Emacs 和 SlickEdit 方法之间的主要区别在于用户界面。SlickEdit 广泛使用对话框,这些对话框允许用户键入首选项或定义宏和键绑定。Emacs 方法倾向于编辑各种 init 文件,例如 ~/.emacs 或 ~/.xemacs-options,添加加载各种软件包、函数和键绑定的条目。如果不是因为有大量的 Emacs 软件包可用,并且大多数软件包都提供了明确的安装和使用说明,那么 SlickEdit 方法将具有明显的优势。
在 SlickEdit 中打开一个源代码文件,(使用默认设置)会显示各种窗口以及文件的预期基本视图。一个狭窄的垂直项目窗口包含指向每个过程或类(在 C++ 或 Java 文件中)的链接,单击其中一个链接会将编辑窗口滚动到文件中对应的位置。此窗口还可以显示项目中的源文件列表;可以将文件加载到编辑窗口中,然后可以切换项目窗口,以便它显示文件中的所有过程或类。实际上,这种更新的图形化方法来处理“tags”文件功能对于 Emacs 和 vi 用户来说是熟悉的。另一个可用的窗口将显示子进程(例如编译)的输出。
为了与 SlickEdit 最大程度的可配置性保持一致,所有这些子窗口都可以通过菜单访问的对话框轻松自定义或禁用。可以在此对话框中创建和保存全新的工具栏和子窗口,并且可以切换任何子窗口或工具栏的可见性以适应用户当前的需求。这些工具栏可以是自由浮动的,也可以“停靠”在主窗口的指定边缘(见图 2)。
我发现 SlickEdit 自定义的缺点是可用的配置包不多,因此即使您有漂亮的图形窗口可以在其中输入信息,但在大多数情况下,您必须从头开始。例如,如果您想要为各种 HTML 标签设置一组有用的热键,在 Emacs 中,您可以选择几个键绑定包,例如 HTML-Helper-Mode 或 HM-HTML-Menus。SlickEdit 没有附带这样的绑定,因此您必须自己设置它们。3.0 版本确实有一个用于 HTML 编辑的有用新功能:拼写检查器可以识别 HTML 标签并忽略它们。
编辑器可以轻松设置为使用多种键盘模拟包中的任何一种,例如 Emacs、VI 或 Brief。默认设置是 SlickEdit 自己的 CUA/Windows 键映射。当然,任何和所有键都可以重新映射到用户的偏好。键盘宏可以通过对话框轻松方便地设置,并且可以保存以供后续重用。宏在保存时会自动转换为 Slick-C 语言并编译,从而加快其后续执行速度。
此编辑器最令人印象深刻的功能之一是对话框编辑和创建工具(见图 3 和图 4)。该界面让人想起 Visual Basic,并允许更改任何现有对话框以适应您的偏好。初次接触时,似乎这种自定义已经达到了极致。真的有必要能够将对话框中的按钮或菜单移动到框中的另一个位置,或者更改其字体和颜色吗?经过进一步的实验,此功能的真正价值变得显而易见。对话框是用 Slick-C 语言编写的,对话框编辑器实际上是该语言的可视化开发环境,专门用于对话框创建。任何提供的对话框都可以轻松编辑成用户可能需要的任何编辑功能的界面。
此功能可以为雇用大量程序员的开发公司节省时间;可以专门为本地语言和项目类型创建对话框,然后传播到各个开发人员的机器上。
任何这些相同的 Slick-C 命令都可以在编辑器窗口底部的命令行输入字段中键入,这说明了此编辑器的混合性质。通过鼠标和对话框执行任务的概念让人想起 Windows 和 Macintosh 界面,这两者都是作为 Unix 或 DOS 简洁命令行环境的替代品而发展起来的。SlickEdit 在这两个世界中都占有一席之地,允许用户混合使用这两种方法,或者在使用其中一种方法时忽略另一种方法。
我发现 SlickEdit 在我的配备 32MB 内存的奔腾 120 机器上是一个非常响应迅速的编辑器。它的内存占用和加载时间与 GNU Emacs 相当,约为 XEmacs 所需内存的一半。搜索和替换操作很快,文件操作(加载、从一个缓冲区切换到另一个缓冲区等)似乎也尽可能快。
