我有一个无限循环等待输入的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管道解决。 如果有人对如何解决这个问题有任何想法我会 非常感激,谢谢。
答案 0 :(得分:4)
您可以使用gnuclient(Emacs 22附带)(或早期Emacsen的emacsclient)来评估来自外部程序的代码并连接到正在运行的Emacs。
让Emacs自己评估代码看起来像这样:
gnuclient -q -batch -eval "(setq 'lightswitch t)"