如何在终端测试lisp代码


#1

elisp只能在emacs中用C-x C-e 测试吗?

能不能直接或者间接的从终端运行.

#直接从终端运行
$ a=$(( 2 ** 8 )); echo $a
256
#或者跟python和js一样, 能间接从终端的ide测试
>>> 2 ** 8
256
``

#2

M-x ielm

*** Welcome to IELM ***  Type (describe-mode) for help.
ELISP> 

#3

我还以为你想要这样

image


#4

很实用, 谢谢…


#5

安装gcl Lisp 入门 - 维基教科书,自由的教学读本

$ gcl
GCL (GNU Common Lisp)  2.6.12 CLtL1    Fri Apr 22 15:51:11 UTC 2016
Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
Binary License:  GPL due to GPL'ed components: (XGCL READLINE UNEXEC)
Modifications of this banner must retain notice of a compatible license
Dedicated to the memory of W. Schelter

#6

--eval 适合测试少量代码。当代码量比较多,直接在命令行写代码就变得十分困难,这时应使用 -l test.el

或者使用 org-mode 直接在 Emacs 中进行测试,省去切换终端的麻烦。建议启用 ob-async 以避免测试代码污染当前 Emacs。不过 ob-async 开启之后执行速度变慢。

还可以使用 with-emacs,把想测试的代码放在 (with-emacs "/usr/bin/emacs" TEST-CODE) 中,达到类似 org-mode + ob-async 即不离开 Emacs 又实现隔离测试的效果,并且执行速度略胜一筹。