我有一个Emacs命令,如下所示:
(defun query-lisp (word)
(interactive "sType a word to query:")
(message "%s" (query word)))
Run Code Online (Sandbox Code Playgroud)
该query
操作是耗时的操作.当此命令运行时,Emacs会阻止整个帧.有没有办法让Emacs在后台运行此命令或只阻止一个窗口,如迷你缓冲区?
Lin*_*cer 11
如果您打算使用外部流程(已在另一个问题的评论中指明),则可以使用以下内容:
(start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS)
Run Code Online (Sandbox Code Playgroud)
这将返回一个进程对象.您可以将输出发送到缓冲区,也可以将过滤器函数附加到进程.在后一种情况下,这是一个在每次进程发出任何输出时调用的函数.
此外,您可以将哨兵功能附加到您的流程.每次进程状态发生变化时都会调用此函数,这有助于找出它何时退出.
在Emacs的源代码中有以上几个例子,一个这样的例子是compile.el
.
归档时间: |
|
查看次数: |
2861 次 |
最近记录: |