2013-02-17 32 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")調用它就可以按預期工作。手冊中的示例代碼可能是錯誤的。