gpt4 book ai didi

emacs - 如何在 Emacs Lisp 中使用 Slime 运行 Common Lisp 代码

转载 作者:行者123 更新时间:2023-12-05 02:23:22 26 4
gpt4 key购买 nike

出于某种原因,我写了一些 Common Lisp 代码来做我想做的事。我使用 QuickLisp 和 Slime。现在我希望与 Emacs Lisp 集成。

我试过

(slime)
(slime-eval-region start end)
...

在我的 el 文件中,但它不起作用。

我只是运行 Common Lisp 代码并捕获返回值,仅此而已。那我该怎么办呢?

最佳答案

如果我没理解错的话,你想将 Common Lisp 代码作为 Elisp 字符串,在 SLIME 中对其进行评估,并将输出作为 Elisp 字符串加上副作用。

您可以使用此设置代码执行此操作:

(require 'slime)
(defun lispy--eval-lisp (str)
"Eval STR as Common Lisp code."
(unless (slime-current-connection)
(let ((wnd (current-window-configuration)))
(slime)
(while (not (and (slime-current-connection)
(get-buffer-window (slime-output-buffer))))
(sit-for 0.2))
(set-window-configuration wnd)))
(let (deactivate-mark)
(cadr (slime-eval `(swank:eval-and-grab-output ,str)))))

或者如果你已经安装了来自 MELPA 的 lispy 包或者只是 (require 'le-lisp) 或者 github .

这是 *scratch* 中的示例用法:

(lispy--eval-lisp "(load \"~/quicklisp/setup\")")
;; "T"

(lispy--eval-lisp "(ql:quickload 'png)")
;; "(PNG)"

(lispy--eval-lisp "(png:make-image 5 5 1)")
;; "#3A(((0) (0) (0) (0) (0))
;; ((0) (0) (0) (0) (0))
;; ((0) (0) (0) (0) (0))
;; ((0) (0) (0) (0) (0))
;; ((0) (0) (0) (0) (0)))"

关于emacs - 如何在 Emacs Lisp 中使用 Slime 运行 Common Lisp 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22456086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com