如何在Emacs中调用交互式elisp解释器?

Mic*_*ski 38 emacs interpreter elisp

现在我在*scratch*缓冲区中编写表达式并通过评估来测试它们C-x C-e.我真的很感激有一个像SLIME或irb这样的交互式解释器,我可以在其中测试Emacs Lisp表达式.

Gre*_*tes 60

在Inferior Emacs-Lisp模式中评估Lisp表达式很容易:

M-x ielm
Run Code Online (Sandbox Code Playgroud)

您可以在"Lisp Interaction"Emacs手册部分中阅读有关此功能的更多信息.


Ray*_*ega 15

Eshell是交互式Elisp解释器的另一种选择.

M-x eshell
Run Code Online (Sandbox Code Playgroud)

它不仅是像bash这样的命令shell(如果在Windows上,还是cmd.exe),但您也可以交互式地编写和执行Elisp代码.

~ $ ls
foo.txt
bar.txt
~ $ (+ 1 1)
2
Run Code Online (Sandbox Code Playgroud)

  • 好吧,那只是...迷人......混合能力......我肯定要玩这个更多.虽然这是对这个问题的间接答案,但我很高兴这个答案就在这里!`$ echo(buffer-name)| sed -e's /\*/X/g'`给出了'XeshellX`等. (2认同)

jfm*_*fm3 8

你最好的选择是*scratch*缓冲.您可以通过首先打开调试器使其更像REPL:

M-x set-variable debug-on-error t
Run Code Online (Sandbox Code Playgroud)

然后使用C-j而不是C-x C-e,它会将表达式的计算结果插入表达式后的行缓冲区中.而不是命令历史* * *等等,你只需移动*scratch*缓冲区并进行编辑.

如果你想要* * *工作的东西,更像通常的REPL,试试吧ielm.

M-x ielm
Run Code Online (Sandbox Code Playgroud)