emacs - 为什么人们说 "emacs is good for writing lisp program because it' 是用 emacs lisp 编写的”?

标签 emacs lisp

<分区>

我可以想象像用java编写的eclipse这样的IDE很适合编写java程序,因为工具和语言是紧密结合的。因此,如果有人会说“emacs 非常适合编写 emacs lisp 程序”,那么对我来说这也是有道理的。

但人们说 emacs 对所有 lisp 方言都有好处,就好像所有 lisp 方言和 emacs 自然而然地紧密结合一样。不只是 emacs lisp,不是任何语言,不是任何语言使用 repl,而是所有 lisp 方言。为什么? emacs lisp 中是否有任何东西在所有 lisp 方言之间共享,但在其他语言中却没有——包括所有使用 repl 的语言,它是如此独特以至于只有 lisp 方言可以从中受益?你能举出一些例子吗?

最佳答案

您说得对,Emacs 作为通用 Lisp 环境几乎没有任何技术优势。虽然它不完全为零——因为 Emacs 支持可以很容易地解析大多数 lisp,因为它们的表面语法(S 表达式)通常非常相似。但这仍然只是一个技术问题。

真正的原因是,Emacs 诞生于 lisp 之间差异较小的时代(在语法意义上,语义是一个不同的问题),因此它基本上是复杂 Lisp 编辑环境的唯一选择。因此,它享受了 Lispers 几十年来使用它进行 Lisp 编辑的好处,因此它始终是它的强项之一——另一方面,很少有 Lispers 选择其他编辑器,因此他们遭受了自然缺乏需求的困扰. (IIRC,直到不久前,甚至 vi-clones 也只不过是基本的双亲匹配。)

不仅如此,即使现在,由于阅读 elisp 对你的 J Random Lisper 来说更容易,所以他们仍然是发现扩展 Emacs 容易的人群。当然,您可以对 Java 和 Eclipse 提出完全相同的观点——它们都是可扩展性很强的工具示例,因此在各自的社区中根深蒂固。

当涉及到执行代码时,对于大多数 lisp(= 除了 elisp 之外的所有),工作是在子进程中完成的,因此从技术上讲,这与使用任何其他编辑器没有什么不同。

关于emacs - 为什么人们说 "emacs is good for writing lisp program because it' 是用 emacs lisp 编写的”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23942389/

相关文章:

emacs - 将组织模式表中的垂直线导出到 LaTeX

macros - 方案;宏列表中的错误漏洞

list - LISP——整数序列

emacs - 当前缓冲区的议程 View

c++ - 在 emacs 中运行命令,在可点击缓冲区中获取输出

types - (显示8)的返回类型是什么?/什么是空值表达式?

lisp - Scheme 中的异或

web - 如何在 Racket 中阅读网页?

emacs - startup.el真的有用吗?

c++ - emacs 完成或 IntelliSense 与 Visual Studio 相同