Emacs Lisp 的 REPL

63

有哪些适用于Emacs Lisp的REPL?

只有一个在Emacs内部吗?

有没有一些可以在终端中独立于Emacs运行的REPL?

4个回答

82

1
谢谢!这个必须在emacs中运行吗,还是可以在emacs之外的bash中运行?我尝试在bash中使用iemlielm,但它不起作用。 - Tim
1
我认为它不能在Emacs之外运行,但我可能错了。 - Tikhon Jelvis
'ielm' 是一个 Lisp 程序。它只能在 Emacs 中运行。如果你想在终端中尝试一些东西,可以使用 emacs --batch - Glyph
13
“REPL”一词代表“读取-求值-输出-循环”,最初来自于Lisp编程语言,它实际上有名为readevalprint的函数。Emacs Lisp也不例外,因此你可以使用emacs --batch --eval'(while t (print (eval (read))))'来得到你想要的东西。 - Glyph
5
我经常忘记它的名字,所以我为它创建了一个“别名”:(defun repl() (interactive) (ielm))。然后你可以通过 M-x repl 启动解释器。 - Jabba
7
你可以这样说:(defalias 'repl 'ielm),意思是给ielm这个函数起一个别名叫做repl - boskom

3

目前正在进行中的工作是为Emacs打造一个REPL,可从命令行使用。它目前支持基本的命令行编辑和历史记录。

该代码可以在Github上找到


2

在Gitlab上有这个项目。REPL可以在终端或Emacs的minibuffer中运行。即使你在“no-window-system”模式下运行它(使用-nw)。


1

也可以直接运行eshell

M-x eshell

例子

~/.emacs.d/org $ (directory-files "." nil ".org") 
("#x1.org#" "#x2.org#" ".#x3.org" ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接