Pymacs - 无法调用使用pymacs-eval获得的方法

时间:2013-02-17 11:08:53

标签: python emacs pymacs

Pymacs 0.25手册在Section 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语句本身在没有任何C-x C-e错误的情况下进行评估,所以我不知道出了什么问题。另外,看看Pymacs.py,看起来代码试图直接评估elisp代码。请帮帮忙?

1 个答案:

答案 0 :(得分:1)

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