【发布时间】:2013-11-17 03:56:22
【问题描述】:
是否可以在 elisp 中定义信号处理程序?我想要一个外部进程(在同一个盒子上运行)向 emacs 指示 emacs 需要刷新一些外部状态。
【问题讨论】:
-
我知道你可以处理
sigusrgnu.org/software/emacs/manual/html_node/elisp/… 和 lists.gnu.org/archive/html/help-gnu-emacs/2006-10/msg00332.html 但我自己从未尝试过。还有一种方法可以收听 DBus 信号,但我不知道如何处理sighup或任何任意信号。 -
dbus 接口的文档在这里:gnu.org/software/emacs/manual/html_mono/dbus.html(顺便说一句,@wvxvw:感谢这个有趣的信息)
-
你也可以看看
server-eval-at的elisp源码。如果您出于某种原因想避免它,那应该告诉您如何在没有emacsclient的情况下通过 tcp/ip 与 emacs-server 通信。但是,emacsclient更简单。我的印象是 tcp/ip 接口比 dbus 接口简单一些。也许,这种印象是错误的。