我正在用Python编写一个VIM插件。我希望能够运行一个函数,在后台等待事件,并在需要时更新缓冲区,而不冻结整个窗口。有可能吗?在
我尝试使用threading
模块运行一个单独的线程,但没有用。(只有在阻塞线程时,才会在缓冲区中反映更改)。在
澄清:我有一个函数,可能需要几十秒才能返回更新。我需要用返回的数据更新其中一个缓冲区(并再次调用该函数)。在
如何称之为“异步”而不冻结窗口?如果我可以跨越一个单独的进程来完成,那么如何设置IPC?在
另一个更新:如果我创建了一个临时文件,让一个单独的进程对其进行写入,然后观察FileChangedShell
以自动刷新它?在
(如果没有“这不起作用”的答案,也没有更好的想法,我会在一段时间内尝试这个,并更新结果)。
这可能是抽象的,而不知道细节。但是,轮询事件数据是否对你的插件有效?很久以前,我正在为ensime(scala completion守护进程)编写一些vim插件,也遇到了类似的问题。对我来说,打开一个新的进程并等待数据出现在socket中的效果非常好。这显然是由于服务器本身是异步的,并且用于按照接收结果的顺序在套接字上写入结果。希望这有帮助。在
相关问题 更多 >
编程相关推荐