Emacs是否是唯一的elisp解释器?是否存在专门的独立elisp解释程序?
Emacs Lisp独立运行相关问题解答
Emacs并不是唯一可以执行elisp表达式的程序,目前确实存在专门的独立elisp解释器,常见的可用方案有以下几种:
- Guile的elisp兼容层:GNU Guile作为官方的GNU扩展语言实现,内置了完整的elisp语法兼容支持,不需要启动Emacs就可以独立运行大部分纯逻辑类的elisp代码,启动elisp运行环境的命令为
guile -l elisp。 - Emacs批处理模式:这是Emacs自带的非交互运行模式,不需要启动GUI或终端交互界面即可执行elisp代码,常用来做elisp脚本的测试、批量任务执行,属于轻量的elisp执行入口,单条表达式执行示例命令如下:
emacs --batch --eval "(message \"%s\" (+ 1 2))" - 第三方轻量elisp解释器:社区还存在过不少独立的轻量elisp解释器项目,比如
tiny-elisp、elispc等,不过这类项目普遍兼容性不足,仅支持基础的elisp语法运算,不支持复杂的库调用,适用场景非常有限。
要注意的是,我们日常写的elisp扩展绝大多数都依赖Emacs内置的缓冲区、文本处理、主/次模式等独有API,这类API只有完整的Emacs运行环境才能提供,就算用独立elisp解释器也只能运行不依赖这些特有接口的纯逻辑代码,如果你写的是编辑器功能扩展类的elisp代码,还是只能在Emacs环境内运行。
内容的提问来源于stack exchange,提问作者M0M0
相关产品推荐
相关产品推荐

