1

Pymacs 0.25 手册在第 3.4.2 节中有以下片段

(pymacs-exec "import re")
(setq matcher (pymacs-eval "re.compile('PATTERN').match"))
(pymacs-call matcher "PATTERN123")

在带有 Python 2.7.3 的 Ubuntu 12.04(32 位)上的 Emacs24.2 中,前两条语句执行良好,但第三条语句抛出以下错误:

pymacs-report-error: Python: Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/Pymacs.py", line 268, in loop
    value = eval(text)
  File "<string>", line 1
    (lambda (&rest arguments) (pymacs-apply (quote (pymacs-python . 5)) arguments))(".")

我对 Elisp 了解不多,但是 lambda 语句本身在 Cx Ce 的评估中没有任何错误,所以我不知道出了什么问题。此外,查看 Pymacs.py,看起来代码正在尝试直接评估 elisp 代码。请帮忙?

4

1 回答 1

1

由于该pymacs-call语句返回一个 lambda 函数,因此调用它(funcall matcher "PATTERN123")可以按预期工作。手册中的示例代码可能是错误的。

于 2013-02-18T05:27:21.647 回答