用于驱动Emacs的Python; pymacs不起作用

时间:2009-07-13 20:08:56

标签: python emacs pymacs

我有一个无限循环等待输入的python脚本,然后 在输入发生时做某事。我的问题是制作python 告诉emacs做点什么。我只需要一些方法来发送emacs输入 并使emacs评估该输入。

这里有一些代码来说明我的问题...

while(1):

  on_off = query_lightswitch
  if on_off == 0:
      send_text_to_emacs("(setq 'lightswitch t)")

理想情况下,我会向emacs发送一个字符串,并在其elisp解释器中进行评估。 我已经尝试过pymacs,但看起来pymacs是为了从中开始 emacs而不是python。当我在pymacs中尝试这样的东西时 它会锁定,直到循环终止。这看起来像我可以解决的问题 如果我知道的话,用unix管道解决。 如果有人对如何解决这个问题有任何想法我会 非常感激,谢谢。

1 个答案:

答案 0 :(得分:4)

您可以使用gnuclient(Emacs 22附带)(或早期Emacsen的emacsclient)来评估来自外部程序的代码并连接到正在运行的Emacs。

让Emacs自己评估代码看起来像这样:

gnuclient -q -batch -eval "(setq 'lightswitch t)"