以前看过一个帖子是介绍成千种的免费文本编辑器。让人摸不着头脑。无奈本人用的文本编辑器不是很多。不能分享出太多经验。今天看到一篇文章。希望能起到抛砖引玉之效果。祝愿大家找到适合自己的文本编辑器。文章如下。感谢文作者的分享。
我理想中的文本编辑器
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,用得最多。
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我是从昨天开始用的,也很喜欢,只是目前还比不上前二者,但它们还算不上完美,也算不上理想,希望自己有机会能编个好用的文本编辑器出来,虽然这个机会不知道什么时候才能有。如果有人想编,希望本文能够给他一个很好的借鉴。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课