Python 驱动 Emacs; pymacs 不工作

标签 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 管道解决。 如果有人对如何解决这个问题有任何想法,我会 非常感谢,谢谢。

最佳答案

您可以使用 gnuclient (与 Emacs 22 一起提供)(或 emacsclient 对于早期的 Emacsen),以评估来自外部程序的代码并连接到正在运行的 Emacs。

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

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

关于Python 驱动 Emacs; pymacs 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121759/

相关文章:

python - 使用 Python mysql.connector 远程连接 MySQL

python - Emacs:Pymacs 不使用 Carbon Emacs 加载 ropemacs

python - Pymacs - 无法调用使用 pymacs-eval 获得的方法

c++ - 如何使用 Yasnippet printf

python - 我如何改进欧拉问题 7 的代码

python - 在 DataFrame 上应用 .value_counts(),并在每个单元格中填充列表

python - Win32com 与 Reflection Desktop 的接口(interface)

search - 在 Isearch 搜索字符串中使用 Emacs 寄存器

emacs - 如何使用 emacs 在 Marklogic 数据库上运行 xquery 代码?