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代码。请帮帮忙?
答案 0 :(得分:1)
由于pymacs-call
语句返回lambda函数,因此使用(funcall matcher "PATTERN123")
调用它会按预期工作。手册中的示例代码可能是错误的。