2013-02-17 16 views
1

的Pymacs 0.25手册得到的方法在Section 3.4.2Pymacs - 无法调用与pymacs-EVAL

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

下面的代码段在Emacs24.2在Ubuntu 12.04(32位)与Python 2.7.3,前两个语句执行罚款,但第三个引发以下错误:

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的,但拉姆达语句本身不进行评估与CX策的任何错误,所以我不不知道怎么回事。另外,看着Pymacs.py,它看起来像代码试图直接评估elisp代码。请帮忙?

回答

1

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