关于Emacs与Elisp解决思路

关于Emacs与Elisp
看C++论坛的时候,看到关于emacs与微软VS ide之间的讨论

由于没有用过VS,只用过eclipse,觉得已经很不错了(我能写一些小的plugins)

但是别人却说Emacs是神的编辑器,真的不知道为什么会这么说

于是下载了一个emacs for windows用了用


我用的方式是通过学习emacs的lisp语言来学习emacs的

(一本入门的书 programming in emacs lisp An Introduction)

这本书中最吸引我的一句话是:在源码之间跳跃!

我看过的关于lisp的文章:《lisp的本质》



通过几天的学习发现真的挺好的。

现在只能举两个例子:

1. emacs可以找到一个快捷键的源码,并且可以轻而易举的修改它!

(快捷键相当于eclipse里面的actionset或command)

VS能不能这样我不知道,eclipse如果有插件的源码,也可以修改,但是却没有emacs这样方便

(至少eclipse插件修改的效率要比emacs慢)


2.editor的数量:

eclipse的editor只能有一个,虽说可以有多个viewer,但是和emacs的多个editor相比,emacs或许会更好



elisp和python有相似的地方,或许更准确的说是python和elisp有相似的地方

都是动态语言,都可以处理list(到现在我只知道这么多)


我觉得既然python语言和lisp有相似的地方,python据说一个星期就能学会

那么lisp应该也不会太难。python有pydoc,lisp也有。(一本reference应该足够!)

那么为什么不用两个月的时间学一下elisp呢,或者是学一下emacs。

你应该会有收获的!!


------解决方案--------------------



------解决方案--------------------
elisp只是lisp众多方言之一,专用于emacs扩展,emacs的大部分高层功能都是elisp完成的,
elisp本质上还是要依赖emacs环境,除非独立出elisp解释器,不过没啥意义,毕竟elisp的天职是服务
emacs,而不是像python一样作为通用编程语言完成各种各样程序设计任务,所以不玩emacs就没elisp啥事.
elisp有自己资料,
入门有an introduction to programming in emacs lisp
最全的参考书是gnu emacs lisp reference manual
这些都是官方的,都能在官网免费得到
elisp扩展性蛮强的,插件也不少,不过emacs精髓还是捣腾,这就需要时间精力,喜欢无限捣腾的人才能感受到
个性化emacs的乐趣, 相反out of box党会崩溃的。
------解决方案--------------------
lisp好像是跑虚拟机上的吧?
不确定
但我看emacs源码 里很大一部分是基于lisp的 其余一部分是c++ c shell什么的
而且又有windows版本的emacs
所以我觉得lisp是有可能生成native的code的
但我不太清楚lisp这样的函数语言是否对应的编译 还是 解释  
------解决方案--------------------
引用:
但是这种在数据与函数之间的转换有什么意义吗?
我们已经习惯了用库的方式去组织函数,用源文件的方式来调用库函数
还用得着去动态的生成一个东西再去调用函数吗?
他和我们直接在源文件中的代码有什么区别吗?
以文件为单位去调用库函数不是更加具有可扩展性吗?
难道只是为了一个能够在函数与数据之间相互转换的语言特性吗?
这是为什么C比lisp更被广泛使用的原因吗?


兄弟很深刻啊!随便想想就想到这儿了。lisp与其他语言最大的不同就在这儿:代码数据同型使得lisp支持宏(macro)。lisp的很多特性(动态语言,函数式编程等)已经被其他语言吸收,实现了,唯有macro还是lisp独有的。