首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在elisp代码中删除make-process或start-process中的“处理完成”消息

在elisp代码中,要删除make-process或start-process中的“处理完成”消息,可以通过以下步骤实现:

  1. 使用make-process或start-process函数创建进程对象。
  2. 通过设置进程对象的filter函数,过滤掉不需要的消息。
  3. 在filter函数中,判断消息类型,如果是“处理完成”消息,则返回nil,即不处理该消息。
  4. 将过滤后的消息传递给其他处理函数,或者直接忽略该消息。

下面是一个示例代码,演示如何删除“处理完成”消息:

代码语言:txt
复制
(defun my-process-filter (process output)
  "自定义进程过滤函数,过滤掉处理完成消息"
  (unless (string-match-p "处理完成" output)
    ;; 处理其他消息
    (message output)))

(let ((process (make-process :name "my-process"
                             :buffer "*my-process*"
                             :command '("command" "arg1" "arg2")
                             :filter #'my-process-filter)))
  ;; 等待进程处理完成
  (while (process-live-p process)
    (accept-process-output process)))

在上述代码中,我们定义了一个名为my-process-filter的自定义过滤函数。该函数会判断输出消息中是否包含“处理完成”字符串,如果不包含则处理该消息,否则忽略该消息。

然后,使用make-process函数创建一个进程对象,并设置了过滤函数为my-process-filter。在实际使用中,你需要根据自己的需求修改:command参数,指定要执行的命令及参数。

最后,通过accept-process-output函数等待进程处理完成。在等待过程中,进程的输出会被传递给过滤函数进行处理。

请注意,上述代码只是一个示例,具体的实现方式可能因实际情况而异。你可以根据自己的需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券