4

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

我尝试使用该模块运行一个单独的线程threading,但这没有帮助。缓冲区中的更改仅在函数返回(并且阻塞线程终止)时反映。

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

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

另一个更新:如果我创建一个临时文件,有一个单独的进程写入它,并按照此处FileChangedShell的建议进行观察以自动刷新它怎么办?

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

4

1 回答 1

0

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

于 2013-08-31T05:36:18.177 回答