Я пишу плагин VIM в Python. Я хотел бы иметь возможность запускать функцию, которая будет ждать события в фоновом режиме и при необходимости обновлять буфер, без замораживания всего окна. Это возможно?Как правильно запустить бесконечный цикл и по-прежнему работать с буферами в плагине VIM?
Я попытался запустить отдельную тему, используя модуль threading
, который не помог. Изменения в буфере отражаются только тогда, когда функция возвращается (и блокирующий поток завершается).
Уточнение: У меня есть функция, которая может занять несколько десятков секунд, чтобы вернуть обновления. Мне нужно обновить один из буферов с возвращенными данными (и снова вызвать функцию).
Как это назвать «асинхронно» и не замерзать окно? Если я могу это сделать, охватывая отдельный процесс, как мне настроить IPC?
Еще одно обновление: Что делать, если я создать временный файл, иметь отдельный процесс записи на него, и наблюдать за FileChangedShell
как предложено here автоматически обновить его?
(Если у меня нет ответа «это не сработает», и у меня нет идей, я попытаюсь это сделать через некоторое время и обновить результаты).
Я всегда думал, что vim был выделен в виде резьбы, и было очень сложно сделать что-нибудь многопоточное. – FDinoff
@FDinoff. Я столкнулся с чем-то подобным; но не мог понять, что это значит. Хотелось бы надеяться, что задание прямого вопроса даст мне некоторую ясность в этом вопросе. –