gpt4 book ai didi

python - 如何正确运行无限循环并仍然使用 VIM 插件中的缓冲区?

转载 作者:行者123 更新时间:2023-11-28 19:23:39 25 4
gpt4 key购买 nike

我正在用 Python 编写一个 VIM 插件。我希望能够运行一个函数来等待后台事件并在需要时更新缓冲区,而不卡住整个窗口。这可能吗?

我尝试使用 threading 模块运行一个单独的线程,但没有帮助。只有当函数返回(并且阻塞线程终止)时,缓冲区中的更改才会反射(reflect)出来。

澄清:我有一个函数可能需要几十秒才能返回更新。我需要用返回的数据更新其中一个缓冲区(并再次调用该函数)。

我如何称其为“异步”并且不卡住窗口?如果我可以通过跨越一个单独的进程来做到这一点,我该如何设置 IPC?

另一个更新:如果我创建一个临时文件,让一个单独的进程写入它,并按照建议观察 FileChangedShell 会怎么样 here自动刷新?

(如果没有“这行不通”的答案,也没有更好的想法,我会尝试一段时间并更新结果)。

最佳答案

这可能是抽象的,不知道细节。但是轮询事件数据是否适用于您的插件?回来的时候我正在为 ensime(scala compeletion daemon)写一些 vim 插件并且遇到了类似的问题。对我来说,打开一个新进程并等待数据出现在套接字中工作得很好。这显然是由于服务器本身是异步的,并且用于按照接收结果的顺序将结果写入套接字。希望这会有所帮助。

关于python - 如何正确运行无限循环并仍然使用 VIM 插件中的缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18544253/

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