当我开始学习 lisp、emacs 和 ess(Emacs 讲统计)时,我遇到了“劣等这个或那个”的概念。例如,有 inferior-ess-mode、inferior-lisp 和 Inferior Emacs Lisp Mode。
在所有这些情况下,似乎某种解释性语言正在 emacs 中运行,并且您可以在缓冲区内与其交互。 但是他们为什么不如,比什么差?
劣等模式是指作为 emacs 子进程运行的模式。
例如,这是我启动 emacs 时的进程树:
$ pstree 62238
--= 62238 smt /usr/local/Cellar/emacs/HEAD/Emacs.app/Contents/MacOS/Emacs
运行劣质 tcl shell 后,我的进程树如下所示:
$ pstree 62238
-+= 62238 smt /usr/local/Cellar/emacs/HEAD/Emacs.app/Contents/MacOS/Emacs
\-+= 62359 smt /bin/sh /usr/bin/wish
\--- 62361 smt /usr/bin/../../System/Library/Frameworks/Tk.framework/Version
另一种说法可能是,在这种情况下,“劣等”与前缀“亚”同义。
我认为“劣质 Emacs Lisp 模式”(ielm)是一个错误的名称。这应该被命名为“Interactive Emacs Lisp Mode”。有了 ielm,Emacs Lisp 就不会以劣等 Lisp 的方式运行了。这是内置 Emacs Lisp 的 read eval print 循环。 GNU Emacs 实际上将其命名为“Inferior Emacs Lisp Mode”,但如果您查看源代码,它会直接使用内置的 Emacs Lisp eval
来计算表达式。它只是重用一些基础设施(comint)来处理劣等解释器(如 Lisps、shell 等)。
ILISP(劣质 Lisp
),已过时inferior-ess-mode:控制 R 子进程 inferior-lisp:Lisp 子进程
inferior-emacs-lisp-mode:内置 Emacs Lisp 作为