声明:作者水平有限,本文可能言辞不周甚至会存在谬误,请阅读时转动您的灰色脑细胞。另转载请注明出处。
无论在windows上还是linux上我一直使用VIM编辑器,在感叹VIM的强大的同时却也积攒了一些不满。比如VIM即难以作为编辑模块嵌入其他程序,也没有EMACS那样的子进程交互能力,只有一种server模式。另外VIM的Script也怪弱的,与buffer交互性太差了,只提供了行粒度上的交互函数。感觉VIM的Script充其量只能算一种高级的宏,和EMACS的lisp比起来应该有一定的差距。
今天在google上乱搜,发现了一个基于haskell的Yi-义编辑器,以汉字命名,咋一看还以为国人写的呢!我对haskell早有耳闻,一是它的函数式编程特性,二是使用haskell实现的perl6解释器pugs。Perl6的Pugs实现的作者唐宗汉这样评价haskell的:
“faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP.”
Yi编辑器现在还是比较原始,不过除了console界面外也GUI界面,从 Yi的网页上可以得知它的目标是揉合EMACS和VIM的特性,提供一个以haskell为扩展的小型,高灵活性、高可扩展性、高可配置性的编辑核心。与VIM的Script相比,haskell是一门全功能的编程语言;与EMACS的lisp相比,haskell基于lisp和scheme,进化度更高,由此看来haskell应该是一个很不错的选择。我已经把对haskell的学习列入计划之中,不过国内似乎还没有出版haskell相关的书籍!看来只能看网上教程和啃官方文档了。
其实其他可以作为嵌入脚本的语言也不少,常见的如python、perl、javascript、lua、ruby等。我没有深入研究,泛泛而谈感觉python倾向于与C语言交互;perl作为系统管理工具的味道太浓;javascript难脱web控制语言的根性就其本身而言数据处理能力太弱;lua声称是“专用”嵌入式语言,目前也已经应用在了Scite(功能强大的基于scintilla的编辑器)、Kyzis(一个试图模仿VIM的编辑器,图形界面KDE下可用)等编辑器上,至于应用效果怎么样尚待进一步调查观望;ruby没接触过不好评论,不过目前ruby上大红大紫的应用也就只有RoR,给人一种“只此一能“的感觉。
无论在windows上还是linux上我一直使用VIM编辑器,在感叹VIM的强大的同时却也积攒了一些不满。比如VIM即难以作为编辑模块嵌入其他程序,也没有EMACS那样的子进程交互能力,只有一种server模式。另外VIM的Script也怪弱的,与buffer交互性太差了,只提供了行粒度上的交互函数。感觉VIM的Script充其量只能算一种高级的宏,和EMACS的lisp比起来应该有一定的差距。
今天在google上乱搜,发现了一个基于haskell的Yi-义编辑器,以汉字命名,咋一看还以为国人写的呢!我对haskell早有耳闻,一是它的函数式编程特性,二是使用haskell实现的perl6解释器pugs。Perl6的Pugs实现的作者唐宗汉这样评价haskell的:
“faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP.”
Yi编辑器现在还是比较原始,不过除了console界面外也GUI界面,从 Yi的网页上可以得知它的目标是揉合EMACS和VIM的特性,提供一个以haskell为扩展的小型,高灵活性、高可扩展性、高可配置性的编辑核心。与VIM的Script相比,haskell是一门全功能的编程语言;与EMACS的lisp相比,haskell基于lisp和scheme,进化度更高,由此看来haskell应该是一个很不错的选择。我已经把对haskell的学习列入计划之中,不过国内似乎还没有出版haskell相关的书籍!看来只能看网上教程和啃官方文档了。
其实其他可以作为嵌入脚本的语言也不少,常见的如python、perl、javascript、lua、ruby等。我没有深入研究,泛泛而谈感觉python倾向于与C语言交互;perl作为系统管理工具的味道太浓;javascript难脱web控制语言的根性就其本身而言数据处理能力太弱;lua声称是“专用”嵌入式语言,目前也已经应用在了Scite(功能强大的基于scintilla的编辑器)、Kyzis(一个试图模仿VIM的编辑器,图形界面KDE下可用)等编辑器上,至于应用效果怎么样尚待进一步调查观望;ruby没接触过不好评论,不过目前ruby上大红大紫的应用也就只有RoR,给人一种“只此一能“的感觉。