Если бы я вдруг захотел http сервер в vim(8.x) и nvim, который который при обработке запросов вызывал произвольные команды vim, то на какое api мне бы стоило бы посмотреть?
Сам сервер я бы предпочел написать на python.
Резюме: подружить event loop vim'a с многопоточным скриптом реализующим web сервер на данный момент прямого и простого способа нет.
Возможные варианты:
- использовать вариант +server, при обработке запроса в коде web сервера запускать новый процесс vim, и выполнять на сервере код с помощью --remote-expr
- Использовать функционал +job/+channel
Я предпочту вариант +job/+channel, т.к. там поддерживается автоматическая обработка выполнения различных комманд и выражений vim в json ответе от job'a, см. раздел справки channel-commands. Соответственно, viml часть можно свести к запуску job'a, всё остальное можно сделать из кода сервера. Хотя, можно и видимо лучше таки определить клиентские функции инициирующие дальнейшую работу в viml части.