程序员

不知多久能学会 Elisp

作者:admin 2021-04-14 我要评论

引言 在一个春天的夜晚,好久也没怎么出门的我,偶然发现 Emacs Lisp 程序能够像脚本程序那般运行,而不仅仅是用于编写 Emacs 的配置文件或其插件。这个发现,让...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

引言

在一个春天的夜晚,好久也没怎么出门的我,偶然发现 Emacs Lisp 程序能够像脚本程序那般运行,而不仅仅是用于编写 Emacs 的配置文件或其插件。这个发现,让我觉得无意中发现了一宗瑰奇的宝藏。

关于 Lisp 语言的源远流长及其与世上最好的文本编辑器 Emacs 的莫逆之交,有很多书籍和文章早已给出了严肃的介绍,在此我就不必再行考证和阐述了……没人发稿费,就没必要凑字数。下面,大致总结一下为什么我会觉得能像脚本程序那般运行的 Emacs Lisp 程序蕴含着一宗宝藏:

  • Emacs Lisp 具备着通用的编程语言应该具备的元素,可用于编写在计算机上解释运行的程序。
  • Emacs Lisp 是一种 Lisp 方言,继承了 Lisp 语言的一些重要特性,例如支持泛函编程(Functional Progarmming),可基于宏实现语法扩展。与那些更好的 Lisp 方言相比,Emacs Lisp 存在一些差距 1,却也无伤大雅,因为在通晓 Emacs Lisp 的基础上,再学习其他更好的 Lisp 方言,仅需要再理解寥寥几个新的概念,诸如续延(Continuation)、卫生宏(Hygienic macro)等。
  • 使用 Emacs Lisp 语言编写的程序具备跨平台性。Emacs 可在 GNU/Linux,Windows,Mac OS 以及 FreeBSD 等系统上运行,因而使用 Emacs Lisp 语言编写的程序通常可毫无障碍地这些系统中运行。
  • Emacs Lisp 程序可调用 C 程序库里的函数 2,因而其性能瓶颈可基于 C 程序予以弥补。
  • Emacs Lisp 具备其他编程语言可能没有的一些特性,这个特性并不来自语言,而是来自 Emacs 自身。迄今为止,Emacs 依然称得上世上最好的文本编辑器,它在文本处理方面长期以来凝聚了众多智慧,而这些智慧早已积淀形成了一个庞大的 Emacs Lisp 代码库。这是否意味着,在我使用 Emacs Lisp 编写一个程序用于处理某种特定格式的文本时,有近乎取之不尽的代码可用呢?

诚然,Emacs Lisp 有一些先天不足 3。不过,对于文本处理方面的任务而言,Emacs 自身的存在足以证明这些先天不足是次要矛盾。我所说的能像脚本程序那般运行的 Emacs Lisp 程序蕴含着一宗宝藏,主要针对编写文本处理程序而言。

这份文档所讲述的,是我个人企图消费这宗宝藏的一些很小的尝试,只是这些尝试近似于 Emacs Lisp 教程或笔记的形式。我不是 Emacs Lisp 专家,只是一个希望 Emacs Lisp 能在生活中发挥一些作用的人。在之后的章节里,我将像许多人那样,将 Emacs Lisp 简称为 Elisp,以略微减轻手指关节的劳损。

目录

后记

还没想好怎么写。


  1. https://www.emacswiki.org/ema...
  2. Emacs 自版本 25 开始支持加载 C 语言写的动态库。 ?
  3. https://www.emacswiki.org/ema...

本文转自网络,版权归原作者所有,原文链接:https://segmentfault.com/a/1190000039802488

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 四两拨千斤——你不知道的VScode编码Ty

    四两拨千斤——你不知道的VScode编码Ty

  • 我是如何在 Vue 项目中做代码分割的

    我是如何在 Vue 项目中做代码分割的

  • position:sticky 粘性定位的几种巧妙应

    position:sticky 粘性定位的几种巧妙应

  • 从零到一搭建React组件库

    从零到一搭建React组件库

腾讯云代理商
海外云服务器