gpt4 book ai didi

emacs - 从 comint-redirect-send-command 取回结果

转载 作者:行者123 更新时间:2023-12-02 01:11:52 25 4
gpt4 key购买 nike

我想在 comint 启动的进程完成后读取缓冲区的输出。

(comint-redirect-send-command-to-process 
command-string ;; tested to work in the commint buffer
output-buffer-name ;; random text
buffer-process ;; (get-buffer-process (current-buffer))
nil ;; don't echo input back
t) ;; don't show output buffer immediatly

该 sexp 在运行 comint 进程的缓冲区中进行评估。我要阅读 output-buffer-name的所有文字一旦该过程完成。

我尝试应用发布到这个问题的解决方案: sleep in emacs lisp通过在进程启动命令下面添加这个:
(defun on-status-change (process status)
(message "status done"))

(set-process-sentinel buffer-process 'on-status-change)

此消息不会出现在 *Messages* 中.

输出缓冲区文本中没有提示,但我可以编写一个返回 t 的函数。当输出完成时基于完整的输出文本。

我如何对缓冲区完成/更改使用react,或者如何强制 comint 同步运行此函数。
comint-redirect-send-command-to-process的来源是 here on line 3717

最佳答案

如果其他人有类似的问题,我最终“解决”了这个问题。

(while (not comint-redirect-completed)
(sleep-for 0.01))

comint-redirect-completed’s value is nil

Documentation: Non-nil if redirection has completed in the current buffer.



显然不是一个很好的解决方案,但我无法得到任何其他工作。

关于emacs - 从 comint-redirect-send-command 取回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44937294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com