README
VIM Server
Control and interact with VIM from Node using Javascript. Send/receive messages to/from VIM and control Vim with normal
, ex
, expr
, and call
commands. Requires VIM 8+
Install
npm i vimserver
Messaging
In Node
const VimServer = require('vimserver')
const { on, connect } = VimServer()
on('add-number', ({ send }, { num }) => send({ result: num + 1 }))
connect(9821)
In VIM
fun! Done(ch, response)
echom "received from vim server: " . a:response.result
endfun
let ch = ch_open('localhost:9821')
call ch_sendexpr(ch, {'e': 'add-number', 'num': 4}, {'callback': 'Done'})
Executing the above prints the following message in VIM:
received from vim server: 5
Control VIM
const VimServer = require('vimserver')
const { on, connect } = VimServer()
on('hack-vim', async ({ expr, normal, call }) => {
// get number of lines in buffer
const lineCount = await expr(`line('