五款 Linux 文本编辑器测评
================================================================================

> Mayank Sharma 测试了5款不仅仅是能处理文字的超强文本编辑器。

如果你使用Linux已经有很长一段时间，你知道，不管是编辑一款app的配置文件，还是修改shell脚本，或者编写/查看代码，类似LibreOffice的工具并不适合。尽管字面上看起来都是一样，但是你并不需要一个文字处理器来完成这些任务；你需要的是一个文本编辑器。

在这个测评中，我们将着眼于5款更能胜任繁重文本工作的轻量级的文本编辑器。他们支持语法高亮，像拼写检查一样轻松处理代码缩进。你可以像你复制/粘贴文本那样容易地使用它们记录宏以及管理代码片段。

得益于它们的插件，使得它们足以抗衡其它的以文本为中心的应用程序，一些简单的文本编辑器甚至超出了它们的设计目标。它们能胜任一个源代码编辑器的任务，甚至就是一个集成开发环境。

Emacs和Vim是两款最流行和强大的纯文本编辑器。但是，由于一些原因，我们在这个测评中并没有包括它们。首先，如果你使用它们中的任何一个，那么恭喜你：你不需要更换了。其次，它们都有陡峭的学习曲线，尤其是那些熟悉了桌面环境的用户：他们很更愿意投入其他有图形界面的文本编辑器。

### 目录: ###

#### Gedit ####

- URL:http://projects.gnome.org/gedit/
- 版本: 3.10
- 许可证: GPL
- Gnome的默认文本编辑器准备好挑战了吗?

#### Kate ####

- URL: www.kate-editor.org
- 版本: 3.11
- 许可证: LGPL/GPL
- Kate会挑战命运吗?

#### Sublime Text ####

- URL: www.sublimetext.com
- 版本: 2.0.2
- 许可证: Proprietary
- 在自由的土地上的带有黄金般的心脏的专利软件。

#### UltraEdit ####

- URL: www.ultraedit.com
- 版本: 4.1.0.4
- 许可证: Proprietary
- 足够证明它的价值了吗?

#### jEdit ####

- URL: www.jedit.org
- 版本: 5.1.0
- 许可证: GPL
- 基于Java的编辑器是否会毁掉其他编辑器的世界?


### 关键标准 ###

除了Gedit和jEdit以外的所有工具，都是通过其推荐的安装方法安装在Fedora和Ubuntu上。前者已经兼容默认的Gnome桌面，后者仍然固执地反对安装在Fedora上。由于这些是相对简单的应用程序，他们没有复杂的依赖，唯一例外的是jEdit，它要求要有Oracle Java。

得益于Gnome和KDE持续的努力，所有编辑器无论在哪个桌面上的外观看起来很好，功能也很正常。这不仅是作为评价的标准，也意味着你不再受制于你的桌面环境兼容的工具。

除了它们独特的功能，我们也对所有候选者测试了常规的文本编辑功能。然而，它们并没有被设计为模仿现代字处理器的所有功能，我们也不以此评判。


### 编程语言支持 ###

UltraEdit 能进行语法高亮、代码折叠以及拥有项目管理的能力。也有一个罗列源文件中所有函数的功能列表，但并不适用于我们测试的任何代码文件。UltraEdit也支持HTML5，有一个能添加常用HTML标记的HTML工具栏。

即使Gnome的默认文本编辑器Gedit，也有几个面向编码的功能特性，例如括号匹配、自动缩进以及为包括C, C++, Java, HTML, XML, Python, Perl, 以及许多其它编程语言进行语法高亮。

如果你需要更多的编程辅助功能，看一下Sublime和Kate。

Sublime支持多种编程语言并且能为(那些流行的)C#, D, Dylan, Erlang, Groovy, Haskell, Lisp, Lua, MATLAB, OCaml, R, 甚至 SQL 进行语法高亮。如果这还不够，你可以下载插件以支持更多的语言。另外，它的语法高亮功能提供了多个可定制选项。这个应用程序也会进行括号匹配，确保代码段都正确，Sublime的自动补全功能也支持用户创建的变量。就像Komodo IDE，Sublime也可以显示一个全部源代码的滚动预览图，这对于长代码文件导航和在文件中的不同部分跳转很方便。Sublime最好的功能之一就是能在编辑器内部运行特定语言，例如C++, Python, Ruby等的代码，当然假设在你的电脑上安装有编译器以及其它系统工具。省时间而且不用再开终端.

你也可以用插件在Kate中开启构建系统功能。另外，你可以为GDB调试器添加一个简单的前端。Kate能和Git，Subversion以及Mercurial版本控制系统一起工作，也提供了一些项目管理的功能。除了能为超过180种语言进行语法高亮，它支持所有的这些辅助功能，例如括号匹配，自动补全和自动缩进。它也支持代码折叠，甚至在一个程序中折叠函数。

唯一的遗憾的是jEdit，它声称自己是一个程序员的文本编辑器，但它缺少其他的基本功能，例如代码折叠，它甚至不能提示或者补全函数.

**评分：**

- Gedit：3/5
- Kate：5/5
- Sublime：5/5
- UltraEdit：3/5
- jEdit：1/5


### 键盘控制 ###

高级文本编辑器的用户希望能完全通过键盘控制和操作，一些应用程序甚至支持用户自定义快捷方式的键盘绑定。

你可以轻松的使用Gedit的扩展键盘快捷键。可以在编辑文件时通过工具的快捷键调用工具，例如对一个文档进行拼写检查。你可以看到应用程序内部的一系列默认快捷键，但并没有图形化的方式去自定义它们。相似的，在Sublime中自定义键盘绑定，你需要修改它的XML的键盘映射文件。Sublime由于缺少定义键盘快捷键的图形化界面而饱受批评，但长期使用的用户支持当前的基于文件的机制：这给了他们更多的控制能力。

UltraEdit为它"一切都可自定义"的座右铭感到自豪，这也包括键盘快捷键。你可以自定义菜单导航的热键，以及定义你自己的访问大量功能的组合键映射。

除了完全可自定义的键盘快捷键以外，jEdit也有为Emacs预定义的键映射。Kate在这方面尤其令人映像深刻。它有简单可访问的自定义键绑定窗口。你可以更改默认的键，或者定义替代的键。另外，Kate也有一个能使用户使用Vi键操作Kate的Vi模式。

**评分：**

- Gedit：2/5
- Kate：5/5
- Sublime：3/5
- UltraEdit：4/5
- jEdit：5/5

### 片段和宏 ###

宏通过自动化重复的步骤帮助你降低花费在编辑和组织数据上的时间，而代码片段通过创建可重用的源代码块为程序员扩展类似的功能。这两者都能节省你的时间。

标准的Gedit安装没有这两种功能中的任何一种，但是你可以通过独立的插件启用这些功能。片段插件随Gedit一起发布，但在Gedit内启用宏插件，则需要你手动下载和安装(被称为gedit-macropy，托管在GitHub上)。

Kate也同样通过插件的形式启用片段功能。一旦加入，插件也增加了PHP，Bash和Java的片段库。你可以在侧边栏中显示片段列表以便于访问。可以通过右击片段或者快捷键组合方式编辑它的内容。然而，令人惊讶的是，它不支持宏-尽管用户从2002年就不断要求！

jEdit也有一个启用片段的插件。它还可以从用户行为中记录宏或者你也可以用BeanShell 脚本语言(BeanShell支持像Perl和JavaScript那样将脚本对象封装为简单的方法)中写宏。jEdit也有一个可以从jEdit的网站中下载多种宏的插件。

Sublime有创建片段和宏的内建功能，也有为大多数编程语言经常使用的函数多种片段。

在UltraEdit中片段被称为智能模板，就像Sublime中一样，你可以根据正在编辑的源代码文件类型插入片段。要完成宏记录功能，UltraEdit还有集成了一个基于JavaScript的脚本语言引擎来完成自动任务。你也可以从该编辑器的网站中下载用户提交的宏和脚本。

**评分：**

- Gedit：3/5
- Kate：1/5
- Sublime：5/5
- UltraEdit：5/5
- jEdit：5/5


### 易用性 ###

不像那些简陋的文本编辑器，这些文本编辑器在这方面可以适应从文档写作者到程序员的各种用户的需要。与精简应用程序相反，他们的开发者在寻找添加更多功能的途径。

尽管第一眼看上去这次测评中的大部分应用有一个很相似的布局，经过仔细的检查，你会发现一些可用性的差异。我们通过用户界面的合理使用来介绍它们的功能和特性，而不是铺天盖地地告诉读者。

#### Gedit: 4/5 ####

Gedit的外观很普通，它有一个带有很少的菜单和按钮的简单界面。这是一把双刃剑，因为有些用户可能不会发现它真正的潜能。

Gedit可以在选项卡中打开多个文件，这些选项卡可以重排和在多个 Gedit窗口之间移动。用户可以选择通过插件来启用侧边栏来浏览文件或者在底部面板显示工具输出内容。这个应用程序会检测到被其它应用程序更改的文件并可以重新加载该文件。

为了适配Gnome，在应用程序的最新版本中做了大量的 UI 修改。然而修改还还不稳定，尽管包括了所有的功能，但是菜单交互的一些插件还需要升级。

![在展示一个有功能的应用程序和将它们所有的东西曝光给用户之间有一个很好的平衡。Geddit隐藏了它的大部分功能。](http://www.linuxvoice.com/wp-content/uploads/2014/07/gedit-web.png)

*在功能与界面之间取得了良好的平衡，Gedit将其大部分功能隐藏在背后。*

#### Kate: 5/5 ####

尽管用户界面的主要部分和Gedit相似，Kate可以在两边显示选项卡并且它的菜单更加丰富。该应用程序平易近人，吸引用户来挖掘它的其它功能。

Kate可以在KDE的KIO支持的所有协议上透明地打开和保存文件，包括通过HTTP, FTP, SSH, SMB 和 WebDAV。你可以用这个应用同时处理多个文件。但不同于大部分应用程序传统的水平选项卡选择栏，Kate在屏幕的两个方向都有选项卡。左侧的侧边栏显示打开的文件列表。需要同时查看一个文件不同部分的程序员也会感激它可以水平或者竖直分隔界面的能力。

![Kate能搭建为功能丰富的集成开发环境](http://www.linuxvoice.com/wp-content/uploads/2014/08/kate-web.png)

*Kate能搭建为功能丰富的集成开发环境。*

#### Sublime: 5/5 ####

Sublime支持你在不同方式同时查看多达四个文件。当你在集中精力编程时，它也有一个只显示文件和菜单的全屏无扰模式。

这个编辑器还在右边有个缩略地图，这在长文件中导航非常有用。应用程序为多种编程语言提供多种常用函数的片段，这使得它对于开发者非常有用。另一个精巧的功能是，无论你使用都是文本文档或者代码，都可以任意选择和替换。

![如果你不喜欢Sublime的Charcoal外观，你可以选择它包含的其它22种主题。](http://www.linuxvoice.com/wp-content/uploads/2014/08/sublime-web.png)

*如果你不喜欢Sublime的Charcoal外观，你可以选择它包含的其它22种主题。*

#### UltraEdit: 3/5 ####

UltraEdit在界面的顶部和底部加载了多种工具栏。加上切换文档的选项卡、两边的面板，以及分隔区域，使得只剩下一点空间给编辑窗口。

使用HTML的网络开发者有很多唾手可得的帮助。你可以通过FTP和SFTP访问远程文件。高级功能，例如记录一个宏以及比较文件，也简单易用。

使用应用程序的偏好设置窗口，你可以调整应用程序的多个方面，包括颜色主题和类似语法高亮的其它功能。

![UltraEdit的用户界面是高度可配置的 — 你可以像改变其它许多方面那样简单的自定义工具栏和菜单的布局。](http://www.linuxvoice.com/wp-content/uploads/2014/08/ultraedit-web.png)

*UltraEdit的用户界面是高度可配置的 — 你可以像改变其它许多方面那样简单的自定义工具栏和菜单的布局。*

#### jEdit: 3/5 ####

在可用性方面，首先一个不好就是jEdit不能在基于RPM的发行版上安装。导航编辑器需要一些时间来适应，因为它的菜单和其它流行的应用程序顺序不同，而且有些普通桌面用户不熟悉的名字。但是，该应用程序有详细的内部帮助，这有利于缓解学习曲线。

jEdit会高亮你所在的当前行，并使你能以多种查看方式分隔窗口。你可以简单地从应用程序中安装和管理插件，除了使用完整的宏，jEdit也支持你快速记录一个临时的宏。

![由于它的Java基础，jEdit在任何桌面环境中都不能给人宾至如归的感觉](http://www.linuxvoice.com/wp-content/uploads/2014/08/jedit-web.png)

*由于它的Java基础，jEdit在任何桌面环境中都不能给人宾至如归的感觉*

### 可用性和支持 ###

在Gedit和Kate之间有很多相似性。两个应用程序都得益于他们各自的父项目，Gnome和KDE，捆绑在各种主流的发行版中。另外两个项目都是跨平台的，有Windows和Mac OS X版本以及原生的Linux版本。

Gedit托管在Gnome的网站上，并有一个简单的用户指南、关于多种插件的信息，以及包括邮件列表和IRC通道在内的常用联系方式。你也可以在其它基于Gnome的发行版，例如Ubuntu中找到使用信息。相似地，Kate得益于KDE的资源，并包括详细的用户信息以及邮件列表和IRC通道。你也可以从应用程序中获取相应的离线用户指南。

除了Linux，UltraEdit在Windows和Mac OS X中也可用，虽然在应用程序中并没有包括，但在启动时也有详细的用户指南。为了辅助用户的使用，UltraEdit保存了一个常见问题的数据库，一系列关于多种特定功能的详细介绍，用户还可以在论坛版块彼此帮助。另外，付费用户也可以通过邮件从开发者中获取支持。

Sublime支持一样多的平台，但是你需要单独为每种平台购买许可证。开发者通过博客让用户了解正在进行的开发，并积极参加它的论坛。这个项目支持设施的亮点是提供免费的详细教程和视频课程。Sublime非常漂亮。

由于jEdit是用java编写的，所以它在多种平台中都可用。在它的网站上你可以找到一个详细的用户指南以及一些插件帮助文档的链接。然而，这里没有能使用户和其他用户或者开发者交流的途径。

**评分：**

- Gedit：4/5
- Kate：4/5
- Sublime：5/5
- UltraEdit：3/5
- jEdit：2/5

### 附加组件和插件 ###

不同的用户有不同的需求，一个简单的轻量级应用程序只能做到这么多。这就是为什么需要插件的原因。应用程序依赖于这些小部件来扩展它们的功能集并让更多的用户使用。

UltraEdit是一个例外。它没有第三方插件，但开发者将例如HtmlTidy这样的第三方工具集成到了UltraEdit。

Gedit附带了好多已安装的插件，你可以下载更多的更多gedit插件包。基于和Gedit版本的兼容性，项目网站也有到多个第三方插件的链接。

三个对程序员非常有用的插件是：Code Comment、在底部面板增加一个终端的Terminal Plugin以及Session Saver。当你用多个文件开发项目的时候Session Saver相当有用。你可以在选项卡中打开文件，保存会话，你可以用一键恢复，就可以按照你保存时的选项卡顺序打开所有的文件。

类似的，你可以通过用内部的插件管理器增加插件来扩展Kate。除了令人映像深刻的项目插件，一些开发者使用的插件包括嵌入式终端，它能编译和调试代码，以及对数据库执行SQL查询。

Sublime的插件是用Python写的，文本编辑器包括了一个类似于apt-get，能使用户查找，安装，升级和移除插件包的名为Package Control的工具。通过插件，你可以在Sublime中使用Git版本控制，以及美化JavaScript代码的JSLint工具。Sublime Linter能指出你代码中的错误，是编码人员必备的插件。

jEdit拥有最令人印象深刻的插件设施。该应用有超过200个插件，可以在它们自己的专用网站中浏览。网站通过不同的类型列出了插件，例如文件管理，版本控制，文本等。你可以在每个类型下找到很多的插件。

一些最好的插件是Android插件，它们提供了和Android项目协同工作的工具；你可以使用TomcatSwitch插件创建和控制外部Jakarta Tomcat服务器进程；以及类似于Vi功能的Vimulator插件。你可以通过使用jEdit的插件管理器安装这些插件。

**评分：**

- Gedit：3/5
- Kate：4/5
- Sublime：4/5
- UltraEdit：1/5
- jEdit：5/5

### 纯文本编辑 ###

尽管它们强大的额外功能甚至可能会取代几种完全成熟的应用程序，有时候可能只需要使用这些庞大的文本编辑器读、写或者编辑简单的纯文本。虽然你可以使用它们中的任何一个输入文本，我们通过普通文本编辑的方便性评价它们。

Gnome的默认文本编辑器Gedit，支持取消和重做机制以及搜索和替换。它可以对多种语言进行拼写检查，并能通过使用Gnome GVFS库访问和编辑远程文件。

你也可以使用Kate进行拼写检查，它也可以让你对任何高亮文本进行Google搜索。它还有一个能可视化告知用户文件中更改过但没有保存的行的行修改系统。另外，它通过允许用户在文件中使用书签简化长文档的导航。

Sublime有很多可选择的编辑命令，例如缩进文本和格式化段落。它的自动保存功能帮助防止用户丢失他们的更改。高级用户还会喜欢基于正则表达式的递归查找和替换功能，以及选择多个不连续的文本块并执行统一操作。

UltraEdit也允许用户在查找和替换功能中使用正则表达式，并能通过FTP编辑远程文件。

JEdit一个独特的功能是它支持被称为寄存器的不限数目的剪切板。你可以复制文本片段到这些寄存器中，在编辑会话过程中都可用。

**评分：**

- Gedit：4/5
- Kate：5/5
- Sublime：5/5
- UltraEdit：4/5
- jEdit：4/5

### 我们的评比 ###

在这里的所有编辑器都足以替换你已有的文本编辑器，来编辑文本和调整配置文件。事实上，没准它们会组合起来作为你的集成开发环境。这些应用程序都有各种各样功能，它们的开发者不会考虑剥离功能，而是增加越来越多的功能。

jEdit排在这次测试的最后面。因为它不仅坚持使用专有的Oracle Java运行时环境，不能在你的Fedora机器上安装，而且开发者并不积极和用户交互。

UltraEdit做的稍微好一点。这个商业专用工具专注于网络开发者，不为非开发者的高级用户提供任何功能，使得它不值得推荐为免费软件的替代品。

排在第三的是Gedit。作为Gnome的默认编辑器，它没有任何内在的问题，但尽管有很多积极的方面，它还是略微被Sublime和Kate超越。开诚布公地说，Kate是比Gedit更通用的编辑器，甚至考虑到他们的插件系统，评分也优于Gnome的默认编辑器。

Sublime和Kate都相当好。他们在我们的大多数测试中表现同样出色。Kate由于不支持宏而落后于Sublime，但键盘友好和能简单定义自定义键绑定又使Kate找回优势。

Kate成功的原因可以归结为它通过最小化学习曲线提供了最大化的功能。尽管使用它吧，不仅作为简单文本编辑器使用，或者容易使用语法高亮编辑配置文件，甚至得益于其项目管理能力能使用它协作一个复杂的编程项目。

我们不是选择Kate去替换一个类似“[XX，在这里插入你最喜欢的专业工具]”的全面的集成开发环境。但是它是一个专业工具理想的、全面的、以及完美的垫脚石。

Kate为能快速响应你的需要而设计，它的界面并不会使你茫然，并且和那些过于复杂的应用一样的有用。
	
### 1st Kate ###

- Licence LGPL/GPL Version 3.11
- www.kate-editor.org
- 拥有超能力，态度温和的文本编辑器。
- Kate是KDE项目中最有用的应用程序之一。

### 2nd Sublime Text ###

- Licence 专利 Version 2.0.2
- www.sublimetext.com
- 值得你每分钱的专业文本编辑器 - 简单易用，功能全面而且看起来很棒。

### 3rd Gedit ###

- Licence GPL Version 3.10
- http://projects.gnome.org/gedit
- 在Gnome中就用它吧。这是一个奇妙的文本编辑器，确实令人钦佩的工作，但这里的竞争实在太大了。

### 4th UltraEdit ###

- Licence Proprietary Version 4.1.0.4
- www.ultraedit.com
- 关注于为网络开发者提供各种便利，而不为普通用户提供任何特殊功能。

### 5th jEdit ###

- Licence GPL Version 5.1.0
- www.jedit.org
- 缺乏支持，不支持Fedora，缺乏好看的界面，jEdit被贬低到最后。

### 你也许希望尝试… ###

随你发行版发布的默认文本编辑器也能帮助你一些高级任务。例如KDE的KWrite和Raspbian的Nano。得益于KDE的katepart组件，KWrite继承了一些Kate的功能，得益于在树莓派上的可用性，Nano也开始重现风头。

如果你希望跟随Linux大师的脚步，你总是可以尝试高大上的文本编辑器Emacs和Vim。想尝试Vim强大的用户首先可以考虑gVim，它通过图形界面展现了Vim的强大。

除了jEdit和Kate，这里还有其他模仿Emacs和Vim之类的旧式高级编辑器的编辑器，比如JED 编辑器和Joe's Own Editor，这两者都有Emacs的模拟模式。另一方面，如果你在寻找轻量级的代码编辑器，可以看看Bluefish和Geany。他们的存在是为了填补文本编辑器和全面集成的开发平台之间的空隙。

--------------------------------------------------------------------------------

via: http://www.linuxvoice.com/text-editors/

作者：[Ben Everard][a]
译者：[ictlyh](https://github.com/ictlyh)
校对：[royaso](https://github.com/royaso),[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

[a]:http://www.linuxvoice.com/author/ben_everard/
