曾经,对于国产软件,我的态度都是——
总之,能不用就不用。
但是,总有一些优异的国产软件逐渐可以打动人心。比如十数年如一日更新的良心小软件eDiary,强悍无比、毫不逊色于Evernote的国产笔记软件为知笔记。
而在一个重量级的软件领域——文本编辑器领域,长期没有国产软件的一席之地,但是最近,我却发现了一匹超级黑马,这就是今天要介绍的EverEdit,试用一番之后,我毫不犹豫,掏出128大洋购买正式授权。
它确实值128大洋。
文本编辑器战争
在任何一个IT论坛上,总有一些话题会引起世界战争。XX是最好的编程语言是其一,XX是最好的文本编辑器大概就是其二。
在这个领域,有伟大光辉的上古之神VI和Emacs——而且它们的战斗力丝毫不见褪色;有强悍全能的UltraEdit,有中量级利器EmEditor和EditPlus,还有近期一时风头无两的Sublime,还有新近推出的Atom(来自GitHub)和Visual Studio Code(来自……你懂的)。
曾经,我长期使用的文本编辑器是EmEditor。它继承了很多来自日本的软件的优势——专一、小巧、高效。
于是,我一直在使用EmEditor来处理很多事情——记东西、写博客、写文章,一个文本编辑器可以搞定的东西太多了。
直到我遇到EverEdit。
EverEdit作为文本编辑器中的后来者,它同时也是集大成者,它吸取了很多前辈的优势,并加以发扬光大,成为杨过那样的一代大侠。
我的编辑器选择标准
任何选择都必须基于自己的实际需求。这一点自是毋庸置疑。我平时用文本编辑器最多的是用来处理这些类型的文件:
- 纯文本
- HTML/CSS
- Markdown
- ini
而其中又以HTML/CSS和MD为最多。
同时我还在使用MacType,同时希望在文本编辑器当中使用等宽字体。
这就不难得到我的需求了:
- 对MacType良好的兼容性
- 足够强大的代码片段和自动完成
- 能够支持Emmet自然最好
- 足够强大的Markdown支持,能够支持预览最好
- 对等宽字体足够的支持
- 列模式
- 足够优秀的性能,在撰写数万行的文本的时候依旧能够保持流畅
- 多编码支持,能够轻松无乱码处理东亚语言
其实这也就不难看出为什么我一直在使用EmEditor了。
EmEditor的代码片段和自动完成不可不谓强大,并且可以自由自定义。不同的Mode也可以完全由自己来定义。出身日本的它处理多编码也是非常轻松。
但是,EmEditor也并非没有缺点。最让人无语的就是等宽字体的支持问题。
在使用某些等宽字体的时候,会出现两个问题:
- 等宽字体出现重叠。经过验证,是和MacType的冲突所致。
- 列模式下,等宽字体的选择出现偏移,经过验证,这是EmEditor和部分等宽字体的兼容问题。
这不得不说是一个小小的遗憾。然而,最为头痛的问题是,EmEditor并不提供对MD的原生支持。尽管EmEditor的高明的可扩展特性让添加MD的支持并不困难,到官网下载一个语法文件,自己新建一个Profile即可,但是这个语法文件却有不少的问题,比如在同一行当中同时出现* *
和** **
分别标记的和
部分,在着色的时候就会发生错乱,会将这两个语法块之间的文字标记为斜体。然而渲染出来的HTML并非如此。
既然没有MD的原生支持,那就不用想内部预览MD的事情了,只能通过第三方软件,比如MultiMarkdown来调用。还得自己调试bat,MultiMarkdown官方提供的bat未必好用。
直到EverEdit的出现。
黑马
EverEdit绝对是我所使用过的文本编辑器当中,和我的需求契合得最好的。它继承了众多前辈的优良传统,却又没有那些前辈的臭脾气,实在是功德无量,阿弥陀佛。
当年在小众软件上有过一次我最喜欢的文本编辑器票选,当然,编辑很明智的选择了没有公布排名。不过,下面有一个评论实在是很有意思:
Editplus身轻如燕第一个跑过来说:我易用,上手快。
EverEdit:我们比比
TextMate紧随其后:我Snippet无敌
EverEdit:我也会
EmEditor:我中文编码好,我的宏有支持脚本,扩展性无敌
EverEdit:me too
Emacs:我们名字怎么这么像,嗯,你们听说过major mode么,脚踏板升级好了?
EverEdit:大大身体可好,mode我也学会了
Vim:等我i,我换个的主题
EverEdit:Theme我也有,上Vim plugin
Sublime:你们说到哪了,Ctrl+Alt+P, 我Goto…,我多选
EverEdit:我跟
Notepad++:我Plugin多(插件们纷纷发声:是啊,是啊,有我,还有我)
EverEdit:欢迎来Plugin我
然后,EE和大家聊起了列选、多选、Emmet、大文件、Hex编辑、内置Markdown的事,发现接话的不多。
EE说,“额,那我们换个话题,来聊聊自定义语法着色这事吧。”
编辑器小伙伴们表示有事要办纷纷离场。
Sublime擦了擦帽子上$70的徽章,只剩下了Emacs忍着脚踝关节的疼痛,陷入了沉思……
这个评论实在是很精当地展示了EverEdit的众多优势。现在只说一些比较重要的:
性能
曾几何时,打开GB级别的文件,能够淡定从容流畅自如的,只有UltraEdit和EmEditor,其他的文本编辑器,终究会陷入假死的沉思状态。
今天看来,除了这两个,还有一个,便是EverEdit。EverEdit采取的策略是只渲染特定行数的文本,其他文本放入缓存。这一策略事实证明很有效。在长文本的编辑当中,连EmEditor都很不给面子地出现了一些肉眼可见的迟滞,EverEdit却依旧健步如飞。
代码片段与Emmet
Snippets对于HTML的重要性,不言而喻。你是愿意Text
呢,还是愿意a Tab→|
呢?
对于Snippets的支持,EmEditor、TextMate都相当出色,UltraEdit和GEdit没有内置那么多的Snippets但是可以自己编写,这一点EverEdit自然毫不逊色。
在自定义Snippets的支持上,EverEdit没有提供类似EmEditor那样的可视化工具,但是采用纯文本编辑的方法加上足够的注释,这也并不难:
@名称(必填):
@触发文本:
@以脚本运行(N/Y):N
@代码片段:请在下一行开始输入内容!
这个,应该没人会看不懂吧。
然而,在撰写HTML上,真正的终极利器——Emmet,EverEdit提供原生支持!
Emmet,原来也叫ZenCoding,是一种利用简写扩展的方式来将HTML书写速度以数倍加成打鸡血一般提升的神奇工具。在Emmet的下载页面上,我们可以看到Emmet支持众多的书写工具,包括Sublime、Dreamweaver、Atom、Aptana,当然也包括EmEditor,不过EmEditor的支持必须要自己安装Macro,而在EverEdit当中,这是开箱即用。
Emmet写HTML究竟有多强大呢?举个例子,只消输入这些东西:
p>a+(ul>li*3)+(ol>li*4)
然后轻轻地按快捷键展开,就会变成这个:
是不是恍然大悟。展开之后只需要填内容、Tab到下一插入点、填内容再Tab,Emmet甚至让我产生了这样的感觉:MD的优势只剩下易读性了,书写速度和装了Emmet然后写HTML相比,并不占优势。甚至MD还需要解析,不像HTML那样可以直接显示。
多编码
长期以来多编码的支持特性是EmEditor和Editplus的骄傲。然而同样来自东亚的EverEdit处理起来毫不含糊。它甚至自带了一个编码探测工具,这个工具是从Mozilla那里拿来主义的,但是确实好用就行。
多点编辑与列模式
不论什么字体,在EverEdit里面都显示得好好的。此处斜眼看EmEditor。所以使用列模式的时候,也就没有EmEditor会遇到的光标跑偏的问题。
但是此处EverEdit有一个缺陷,那就是一旦按Alt进入列选择模式,就会自动将换行模式给强制重置为不换行,而不能像EmEditor那样自动识别字符的实际行数。并且,在选择完毕后,不会自动回到之前的换行模式。这用起来有些闹心。
而多点编辑,Sublime该坐不住了。它会的EverEdit都会。选定一个字符,Alt+F3
即可将整篇文档内的所有该字符选定,同时编辑光标分散至各个点,删除之后即可迅速插入新字符,F6
可以查找文档内所有的该字符,Ctrl+D
即可选择选定字符之后的字符,同样会启动多点编辑模式。有了它都差点忘了有个快捷键Ctrl+H
。
强大的语法着色
EverEdit拥有我用过的文本编辑器里功能最为强大的着色器。这个毫不夸张。原因不难解释,EmEditor和EditPlus的着色引擎是扫描匹配字符串和字符串的截止字符,将指定的字符着色,这也解释了为什么EmEditor在处理MD的时候,同一行里出现* *
和** **
的时候,整行都会被标记为斜体。它无法处理这种用字符相同但是数量不同的字符作出的标记。
而EverEdit的着色引擎,是基于脚本的。
看一个文本编辑器的语法着色能力,其实好好观察MD的渲染效果就可以了。在这方面,EverEdit非常出色,完全没有错误。而且,它还提供了自定义语法着色,这就是说,用户完全可以自己编写一份语法文件,用来记录一些格式相对比较固定的文件,比如会议纪要或者日记,这更是鲜有其他文本编辑器可以做到的。
内建MD解析器
原本这是Sublime安装Markdown扩展之后的功能,但是EverEdit提供了原生支持,开箱即用。
编写一份Markdown之后,快捷键都和Sublime完全一样——Ctrl+B
,不过,EverEdit直接在窗体内调用IE的控件打开解析后的HTML,并且解析器的功能非常不错,样式美观,而且自带ToC。
值不值?
这个软件现前曾经免费过,现在收费,售价128元人民币。
上面介绍的特性,只是EverEdit强大功能的冰山一角。对于我来说,128元的售价,100%是值回票价的。
也许会有人觉得128买什么不好,但是,这是一个极为好用的工具,就像是一台好用的电饭锅、一套好用的蒸箱烤箱一样,它会让文字工作变得更加轻松,而且文本编辑器的威力,在熟悉的人手中,能够爆发出来的能量,超乎想象。