posts - 76,  comments - 621,  trackbacks - 0
编辑器0.0.1版(原MegaxEdit)兼征名,欢迎喷!

首先,对于下面的文字你可以尽情的喷,不过还是建议你留下联系方式,以便我能和你做进一步探讨。现在这个进度虽然不具备发布的条件,不过还是放上来献丑吧。


历时数月大幅强化了内核功能,目前已经可以很流畅的编辑大文件了,并且只占用较低的内存。打开一般文件的时候,所使用内存也大幅降低,同时也提高了批量命令的执行效率。当然除了内核,目前还谈不上什么外围功能。只实现了查找、替换、打开、保存、关闭、编码探测、多窗口切换、DockWindow、窗口分割、bs/js脚本嵌入等等。附件中的版本应该会有很多问题,在以后的日子里,我的主要工作是让其稳定。

内核功能主要有以下特色:
1.语法着色。我写了一个共通的CommonLexer,只需要配置一下即可渲染一般文件;还写了HtmlLexer,它可以很好的分别渲染html、css、 js、vbs。像php、jsp、asp之类的以后均从HtmlLexer继承即可。如果你觉得CommonLexer不够好,你可以自己写一个,然后在配置文件中指定Lexer=XXXX即可,另外支持正则进行匹配,你可以指定一个正则匹配某一个状态,匹配后要变成哪一个状态。这样你就可以匹配注释中的email之类的,还有c++中的宏。

2.多内码支持,完美Unicode支持。你可以用你喜欢的任意字体,对任意编码文件,同时输入多种语言字符而不会出现乱码,很多软件是不支持该特性的,比如scite, ue等等。(在发布这篇文章的时候,chardet出了点小问题,在sp3无法运行,暂时未找到原因,屏蔽之)

3.大文件支持。不过,仍不建议你对巨大文件做变态操作,比如打开一个1000万行的文件,对每一行交换临近两行等等。对于大文件,我的目标是低内存打开之,在任意处可以做适量编辑之。目前较为完美地实现了,欢迎评测,绝对不输EmEditor之流。

4.实时拼写检查。这个没什么难度,不过暂时屏蔽掉了。因为还要写配置,用户字典,ignore,多种语言的字典的切换等等外围……so……暂时先看截图吧。

5.高速自动换行,目前只做了在窗口边界换行,其它换行只要写个规则即可。

6.列编辑(添加,删除)。当进入列编辑模式时,下方的statusbar的模式栏会显示Col并闪烁。

7.高速批量命令处理

8.高速查询与替换,完美正则支持(使用的鬼车正则库)。

9.代码折叠和行修改指示器。请参考上一版本,因为要和脚本沟通形成自定义outline,该版本暂时屏蔽。代码折叠还需要进一步强化。

其它的还有一些小功能,控制字符显示,行高调整之类的。
写这个编辑器内核花费了我不少心血,白天要忙着上班,下班和周末则去写代码。我花了大约4,5年的时间在上面,代码履历有好几百个,连我自己都吓一跳,ps:我喜欢打包成zip以日期命名备份之。

写一个简单的文本编辑器,有点料的高手可能都差不多。不过高性能编辑器个人认为还是颇有难度的。本来我是不打算再更改内核的,可是如果我有更好的点子而不实现它的话,岂不是有违苍天厚待~~~~~~时间总是不够用,如果我有足够多的时间就好了...........

写编辑器内核是很有意思的。不过当你想把它做成一个产品的时候,就不是一件趣事了。编辑器里面会有很多没有技术含量的无聊的配置Dialog,比如Hidemaru的最新版本就有上百个对话框。我是挺不喜欢写这种东西的,一度打算直接用脚本接口导入各种各样的配置,就像VIM/Emacs那样。用脚本来实现配置是最最最最简单的。不过最后还是坚持下来决定使用简单易读的配置文件。

很多人都有自己的兴趣,都可以高明巧妙地实现某一个点上的设计,在我看来这还不是真正的牛人。我现在最佩服做产品的,哪怕是最简单的产品,其中的麻烦与艰辛也许不像我们想象的那样。就像中国的动车,虽然车头和机身关键技术直接照抄日本的新干线和欧洲的啥啥,但是中国的动车系统仍然可以称得上是一流的。因为这个系统后面要涉及到道路,建设,调度,维护,配置,人员,管理等等,不仅仅是一个车子而已。不过好在,我觉得我有了一个不错的车头。

到目前为止,大部分专业的或者商业的编辑器,比如EmEditor,Editplus, UE, TextMate之类的特性和特色,对于我而言几乎都不是问题,我都知道是如何去实现的。不过仍然有一些编辑器的某些功能我还没揣摩透,比如Hidemaru。它的自动完成和代码折叠非常高效。有兴趣的同学可以研究研究。

提到编辑器,不得不说VIM和EMACS(这个比较容易惹起喷,不过这个不是本文重点,只是我个人分析)。我个人认为EMACS比VIM牛,VIM说到底也只是一个纯文本编辑器,而emacs我认为不是。这俩,虽然一个被称之为神,一个被叫做仙,但是我觉得他们没有市场,在可以预见的将来,它们仍会牢牢的守住终端这一块;随着*inx桌面的进步,其市场仍会持续缩小,并最终成为”神仙”的编辑器。事实上我曾经在AIX下面很长时间使用过vim,对于他能提高效率一说,我不这么认为。也许只是手不离键盘,各种花哨的配置能带来一点IT人士专有的成就感吧。

关于开源。我打算把该编辑器做成一个产品,搞点外快,增加点GDP啥的……所以……以后再说吧。不过任重而道远啊!

征名



我发现一个好听,简单,未被注册的名字几乎都没了。下面这几个还凑合,殷切期望众网友投个票,表达一下。

1. LiteEdit  (美中不足的是已经有一个不在更新的编辑器也叫liteedit,而且这个名字有连续的两个e,不美观, Litedit?)
2. EditLite  (连续出现两个it,不好看)
3. EditWin (取Edit For Windows之意)
4. EverEdit (跟风EverNote)

就这么多了!明天就回国了,好久没吃炒土豆丝了!!!即将开始的半年,肯定又是非常繁忙的日子。即使如此,我要给自己竖立一个目标,把这个编辑器做成一个产品,一定要让他成为5员盗版盘里面的必备。


点击这里下载可执行文件


拼写检查:



渲染HTML:

posted on 2010-12-29 22:51 megax 阅读(2351) 评论(30)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理