Мне интересно, есть ли у vim что-то вроде API, используемого другими программами. Например, команда, которая позволяет другим программам устанавливать состояния vim или вставлять определенные символы в определенную позицию при использовании vim.
Vim имеет интерфейс сокетов, который изначально был реализован для сетевых компонентов и позволяет интегрироваться в среду разработки, например, с использованием точек останова с отладчиком (см. :help netbeans).
:help netbeans
Также имеетсяклиент-серверный интерфейс, который позволяет vim отправлять / принимать команды через сокет (см. :help clientserver).
:help clientserver