1

我有一个 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 管道解决的问题。如果有人对如何解决这个问题有任何想法,我将不胜感激,谢谢。

4

1 回答 1

4

You can use gnuclient (shipped with Emacs 22) (or emacsclient for earlier Emacsen), to evaluate code from external programs and connect to a running Emacs.

Getting Emacs to evaluate code by itself would look something like this:

gnuclient -q -batch -eval "(setq 'lightswitch t)"
于 2009-07-13T20:16:10.913 回答