我理想中的文本编辑器

知识若不分享 实在没有意义 http://www.yidabu.com 20070109

点击下面网址查看原文:http://bbs.yidabu.com/thread-12-1.html

kinghoo原创

用了那么多的文本编辑器,要找一个完全让自己满意的还真的很难,看得越多,越难选择,也许是挑花眼了吧:P。现在,我把自己理想中的文本编辑器写出来,既然是理想中的,难免要求有点高,也许这样的软体永远不会有,但我的理想却一直存在。

一、总体要求

1、最好是免费软体,如果开源就更好了。需求程度:毕竟现在赚钱越来越难了,而一个共享软体至少得几十美元,折换成人民币就是一个不小的数字了。虽然我也是程序员,仍然希望文本编辑器免费。对于开源的要求看似有点过分,其实我是出于这样的考虑:像Vim的作者那样,能坚持数年开发一个免费的文本编辑器的人实在太少,很多人刚开始开发时出于兴趣,但后来由于各种原因,不得不放弃了对软体的更新,比如DreamEdit、TextPro、Crimson Editor都属于此列,如果开源,则可以给后人自己开发的机会。这两点要求虽然比较高,但很多软体都满足,如免费且开源的软体有NotePad++、Turbo Pad、NotePad2、绝地程序编辑器、JEdit等,光免费不开源的也有PsPad、NoteXPad、DreamEdit、TextPro等。如果是收费软体,可以像Emeditor、EditPad那样提供免费版给用户,在功能上有一些限制也可以。

2、界面尽量好看一些。需求程度:用了这么多软体,我最喜欢EmEditor和Programmer『s notepad2的界面,尤其是EmEditor,用得最多。(知识若不分享 实在没有意义 http://www.yidabu.com)

3、启动速度比较快。需求程度:我使用过的文本编辑器中,启动速度比较快的应该是NotePad2、Win32Pad、NotePad++和Emeditor了,这几个软体启动速度和记事本不相上下,启动速度比较慢的就是PsPad、UltraEdit、Emacs了,其中Emacs最慢。但这个问题,又得分两方面来看,像NotePad2、Editor2这种单文档软体,是我单纯用来代替记事本的,每天得运行无数次,启动速度至关重要;而UltraEdit、Emacs之类的多文档软体,每天只要运行一次就够了,因此,这类软体的启动速度对我影响不大。4、打开大文件快一点。需求程度:我一般编辑的文件从几K到几M,都不算大,打开速度影响不大。但有时要编辑比较大的软体,几十M乃至几百M,这对软体要求就比较高了,MadEdit在这点上做得很好,Vim、Emacs这样的就更不用说了。5、支持十六进位编辑。需求程度:这个要求比较特殊,但有时改程序用得上。Vim、UltraEdit、PsPad、NotePad++(用插件实现)、MadEdit都支持此功能。

二、编辑方面

1、对中文支持好。需求程度:具体包括以下几点:(1)支持中文的搜索、替换。这点目前大多数软体都可以实现,即使是NotePad++,搜索时只需要选中正则表达式就可以搜索中文了(这个比较奇怪,中文和正则表达式ms没有太大的关系)。Turbo Pad好像不支持。(2)添加、删除汉字时不会出现乱码。这个问题旧版本的EditPlus有,其他的目前还没遇到过。(3)列操作时不会出现乱码。这个问题旧版本的UltraEdit有,其他的没见过。(4)支持中英文混排。这个问题很多软体都支持不太好,比如NotePad++,如果中英文混排时会有莫名其妙的换行;EditPlus也有些问题,而且有时在空格后面会自动换行,看起来很难看;再比较双击中文中的一个英文单词,如「我觉得EditPlus不错」这句话,EmEditor、MadEdit将会选中「EditPlus」这个单词,而NotePad++则会将全段的文字全部选中(它不认识中文),NotePad2更奇怪,它会选中一部分文字,也不知道是怎么分开的。(5)支持简/繁体、全半形转换。EmEditor、MadEdit这两点全支持。(6)支持中文空格缩进。这个功能现在只有EmEditor具备。(7)可以统计字数。最好能统计中英文字数、单词数。这点Emeditor和MadEdit支持的最好,NotePad2虽然可以统计,但只能统计整个文档中的,不能统计选定文字;UltraEdit、Emeditor、Vim只能统计英文字数、单词数;PsPad本身没有此功能,但作者提供了一个脚本,可以实现。2、对编程支持好。需求程度:具体包括以下几点:(1)支持多种常用的编程语言。UltraEdit和EditPlus都不支持Pascal;PsPad默认竟然不支持C#(可以自己添加);NewEdit也不支持C#,但这个软体主要针对Python而做。我觉得我理想中的编辑器应该支持Pascal、C++、C#、Java、INI、HTML、SQL这几种语言。Vim这点做得最好,好像没什么语言它不支持。(2)支持代码折叠。最好支持三种折叠方式:缩进折叠、语法折叠、自定义折叠。Vim对这三种都支持;EmEditor用插件支持缩进折叠和语法折叠,但有时会报错;NotePad++、Edit-minus对语法折叠支持最好,但不支持其他类型的折叠。其他NewEdit、JEdit等也支持语法折叠。(3)支持代码完成。这个功能有很多名称,有的叫Code Complete,有的叫Code Insight,但有的软体将Code Complete视为代码模板。我的要求就是,按某个快捷键,可以弹出个菜单,选择输入某变数(该变数在前面出现过)。UltraEdit、PsPad、NotePad++、Vim、Scite都具有此功能。其中Scite可以设置为自动弹出,不需要按快捷键,和VS2005有点像。(4)支持代码模板。有的地方叫Code Clip。是指按下某几个关键字再按快捷键,就可以弹出一大段常用代码。比如输入if,就可以自动完成为:if (){}我最早在Eclipse中发现此功能,觉得很有用,后来在Delphi中发现也有,更是极大地提高了我工作的效率。这项功能PsPad支持,Vim、Scite有个名叫「缩写」的功能,也能支持,极地程序编辑器也支持。EditPlus中是自动弹出,但这有点不太方便,我觉得还是用快捷键好。(5)可以自动完成括弧、引号等的配对。这项功能大多数软体支持,在此不多说了。(6)可以回到上次编辑的地方,想当于VS中的Ctrl+-功能。此功能UltraEdit、EmEditor、JEdit都具备。3、支持插入日期。需求程度:我经常需要在文件中插入当前日期,所以对此功能要求比较迫切。我使用过的软体之中,EditPlus做得最好,菜单中有好几项,分别对应长时间、短时间、长日期、短日期等,非常全面;UltraEdit、EmEditor、NoteXPad、Editor2等软体都可以插入日期加时间,但不能单独插入,也不能设置输出格式;PsPad可以设置输出格式,Vim也可以设置,但要自己写配置文件,有点难度。NotePad++、NotePad2等插入日期时,是时间在前,日期在后,如「13:23:32 2006-06-28」,也不能设置,和我的习惯不符。4、支持网页预览。需求程度:由于工作需要,我经常用文本编辑器打开网页进行编辑和预览,感觉非常方便,而DreamWeaver等软体虽然也有此功能,但毕竟太大,启动和预览都比较慢。EditPlus、EmEditor都支持网页预览,其他软体好像没有此功能。5、支持搜索高亮。这个功能目前只有Vim、EmEditor、NotePad++具备,即高亮你要搜索的内容,看起来一目了然。6、搜索功能强大,支持正则表达式,并支持列表、统计等功能。正则表达式现在很多软体都支持,只是支持程度不一样,其中最强大的应该算是Emacs和Vim了,UltraEdit的也不错,EmEditor的似乎弱了一点。至于列表、统计功能,只有NotePad++和PsPad支持,其中,后者支持得更好一些。7、支持多剪贴板。这个功能在需要反复修改代码时非常有用,UltraEdit支持10个剪贴板,而PsPad支持剪贴板循环,我觉得后者更好用一点。其他软体则不太清楚。

三、附加功能方面

附加功能有的看似不重要,但在使用过程中有它真是太好用了。总体上来说,我觉得PsPad在这一点上做得比较好。1、进位转换。UltraEdit、PsPad都具备此功能,后者做得更好一些。2、选区求和。UltraEdit、PsPad具备此功能,后者做得更好一些。3、表达式求值。只有PsPad具备此功能。4、Email发送。具备此功能的有EditPad Pro、Emacs(需要自己写配置文件)、DreamEdit,但DreamEdit的这项功能在我这边一直无法正常运行。5、文件浏览器。UltraEdit、EditPlus、Edit-minus、EmEditor(最新版本)、PsPad、Vim都具备此功能。四、可扩展性。在这方面,最强的据说是Emacs,以至于很多人把它称为操作系统,但我不会用。:(1、宏。这点Vim和EmEditor都很强,EmEditor的宏功能支持VBScript、JavaScript、Perl、Python等多种脚本语言,非常强大。Emacs的Lisp也很强,可惜没用过。2、插件。EmEditor的插件功能最强,如行号、代码折叠等功能都可以用插件实现;而PsPad,插件支持VBScript和JavaScript,能实现的功能和EmEditor的宏差不多;NotePad++的插件功能也比较强,可以实现十六进位编辑等功能,可惜没有提供介面。五、配置方面。这点上做得最差的要数SciTe了,虽然功能很强大,但配置文件完全得自己写,连一点界面都不给,即使是Vim,也提供了一点简单的配置界面。我对配置的要求是:分类准确、功能全面。UltraEdit的配置非常全面,但有用的不多;EditPlus可以算是简洁,而太不全面;EmEditor的平衡把握得不错;Vim、Emacs主要得靠配置文件;PsPad的配置方法也不错,既能用界面设置,也提供了直接编辑的介面,但似乎不太全面。写了这么多,发现自己最喜欢的编辑器还是EmEditor,其次是PsPad,MadEdit我是从昨天开始用的,也很喜欢,只是目前还比不上前二者,但它们还算不上完美,也算不上理想,希望自己有机会能编个好用的文本编辑器出来,虽然这个机会不知道什么时候才能有。如果有人想编,希望本文能够给他一个很好的借鉴。


推荐阅读:
查看原文 >>
相关文章