在Emacs中,Elisp的魅力是什么?

我觉得,Elisp的魅力可能在于“掌控感”。

最简单的例子比如,从编辑器中向前移动一个字符。在Emacs环境下,这条思维路径(或者潜意识里的路径)可以拆解为:

首先,抽象的思考当前的具体操作为 forward-character, 向前移动一个字符;

其次,从抽象到具象,调用elisp的 forward-character函数(如果没有的话,就自定义实现一个)

最后,落实到手指的具体操作上,C-f。

以上三个步骤,自然流畅,一气呵成。

现在,我们再查看在vscode编辑器上,向前移动一个字符的思维路径:

首先,抽象思考当前要完成的任务,向前移动一个字符,抽象命名出来为 forward-character,

然后,forward-character 对应了 → 向右指向的箭头。

以上两步,思维链条结束,这是条件反射,非思考。

缺失了elisp这一环,也就是缺失了从抽象到具象,从抽象思考到函数实现的最关键的落地的环节。

我能思考到forward-character, 但是如果没有elisp, 看不到这个抽象思考的具体形象。

同理,当我们从tmux操作各种分屏的时候,脑子里也就只是快捷键。但是在 elisp 下,是split-window 等,能完全彻底的享受“以意念控制物体”的乐趣。

而之所有会有如此的快乐,皆因为有elisp。

image

1 个赞

之所以会有如此之快乐,皆因为有elisp

我觉得你很有写小说的能力 :rofl:

好奇妙的描写

1 个赞

我比较欣赏这种能力,将枯燥的内容说得像武侠小说。 但我很喜欢。

1 个赞

感谢,有了 elisp 抽象的思考能落实到一个具象的实物。看小说里当镇长当县长等大领导,就有这种“一语成楼,一语成桥,一语万丈高楼平地起,一语百里平房拆干净”。仅仅的用“意念”,用“命令”就能操控现实世界的快乐和掌控感。 (程序员喜欢用命令行是同样的道理)

没有了 elisp,从脑子中到抽象到手指触发按键之间的核心环节,是完全缺失不见的。可能也正是因此,我们常常有是在用键盘操作电脑,操纵一行行命令的假象,因而迷恋键盘。而其实质是,键盘输入的只是文字,文字的背后是抽象的思想,思想的背后是意念。

elisp 帮我们清楚的看到了这个意念,也借由 elisp 能用意念控制物体,控制 frame,控制 window,控制 buffer-and-file,控制 mark-region 的等等。

哈哈 :heart_eyes: 一直在构思写 master-emacs 的第四章 emacs as window-manager. emacs从光标移动,键位绑定,编辑的基本操作,接下来就是 emacs 控制的对象,frame, window, buffer, mode-line, 以及 font, color, theme 等UI。

这些都是 elisp 能控制的具象的物体,也是最能触发思维乐趣的地方,从思考到实现,就如县长一句话说出去,高楼拔地而起。

但是,构思好久,写不出来。

配图不错 紫薯布丁

1 个赞

你这掌控感和elisp没关系吧?把elisp换成python也丝毫不影响。elisp最大的好处我个人认为应该是lisp的语法所带来的统一感,间接影响到emacs的设计。这也是继承了历史上lisp machine的理念。

换成 python 不行。

后面这句话,读起来比较空泛,好像假装在说什么,实际什么都没说。

elisp最大的好处我个人认为应该是lisp的语法所带来的统一感,间接影响到emacs的设计。这也是继承了历史上lisp machine的理念。

这掌控感跟lisp没啥关系,毕竟只是调用编辑器内核的api,在这基础上实现更多操作。其他语言都可以实现。现在好多语言都继承了lisp的优点。

那你喜欢就好,晚安。

我一秒钟也不愿意投入时间读类似的评论,、

编辑器的内核是什么?

实现更多的操作,请写出哪怕一个具体操作‘

其他语言都可以实现,说出具体一个来,“都可以”实现什么?

好多语言,哪个语言,继承了lisp的优点,哪个优点?

1 个赞

你这么忙,浪费你时间,我真的觉得自己有罪。

闲的很,不爱读装X的内容,没有一点信息含量的内容。

forward-character本来就emacs C语言内核的函数 。又不是lisp的函数 。

随便说几句,原来就是装逼了,原来装X这么容易的。

点到为止吧,没兴趣扫盲,还内核。

牛批 在这论坛里没见过戾气这么重的。魔障了?py也是图灵完备的东西,lisp能做的py有什么不能做?

这种小众的技术论坛还能碰到这种装X的人 都是搞技术的戾气这么也是晦气。

2 个赞