GNU Emacs 接口

SWI-Prolog 通过 sweep 包与 GNU Emacs 紧密集成。该包把 SWI-Prolog 嵌入为一个动态 Emacs 模块,使得 Prolog 查询可以直接从 Emacs Lisp 执行。配套的 Emacs 包 sweeprolog.el 可以通过标准 Emacs 包管理器 package.el 安装;它构建在这种嵌入能力之上,为 GNU Emacs 中的 SWI-Prolog 提供完整集成的开发环境。

GNU Emacs 默认附带一个名为 prolog.el 的 Prolog 模式。与 sweeprolog.el 相比,该模式因缺少合适的 Prolog 解析器而存在一些问题。Masanobu Umeda 编写的原始 prolog.el 自 1989 年起就包含在 GNU Emacs 中;2006 年,Stefan Monnier 为 prolog.el 添加了对 SWI-Prolog 的显式支持。2011 年,原始实现的大部分被新的 Prolog 模式替换;该模式最初由 Stefan Bruda 为 XEmacs 移植编写,后来由 Stefan Monnier 改编到 GNU Emacs。此后,Stefan Monnier 与其他 GNU Emacs 贡献者一起维护它。该模式的用户可以在 https://www.metalevel.at/pceprolog/ 找到有用的配置建议。

其他可用于配合 SWI-Prolog 工作的 Emacs 包包括: