Eche un vistazo a TextAid (específicamente el servidor de Perl). Tal vez encuentres ideas útiles.
--re-EDIT--
Ya que me gusta su idea he mirado un poco más lejos.
Suponiendo Vim se compila con +clientserver
, puede iniciar vim como esto:
$ vim --servername MYSERVER /path/to/tempfile`
en su cuadro de mando a distancia. Vim se puso en marcha en modo de servidor y se puede enviar comandos como:
$ vim --servername MYSERVER --remote-send 'ihello<Esc>'
que tienen:
hello
en la primera línea, si envía:
$ vim --servername MYSERVER --remote-send 'A world<Esc>'
se obtiene:
hello world
Si usted envía:
$ vim --servername MYSERVER --remote-send 'yy5p'
obtendrá:
hello world
hello world
hello world
hello world
hello world
Si envía:
$ vim --servername MYSERVER --remote-send ':%s/hello/goodbye cruel<CR>'
obtendrá:
goodbye cruel world
goodbye cruel world
goodbye cruel world
goodbye cruel world
goodbye cruel world
que es una especie de fresco pero hay que devolver el nuevo estado del buffer que harías por writin g el archivo temporal y el envío de su contenido al cliente después de cada comando. Eso significa una gran cantidad de lectura/escritura en su servidor. También se podría escribir una macro que envíe el contenido del buffer a algún proceso externo en cada "cambio".
--EDIT--
Si se hubiera seguido el enlace en lugar de despedir a mi respuesta habría visto que la extensión de arriba funciona enviando el contenido del área de texto al servidor de Perl a través de HTTP.
No creo que importe si Vim es local o en un servidor distante.
El servidor lo escribe en un archivo temporal que luego se abre con Vim.
Cuando Vim escribe el archivo, el servidor vuelve a enviar su contenido a la extensión.
Su parte de JS haría lo que hace la extensión: tome el contenido del área de texto, envíelo a través de una solicitud AJAX POST a su servidor, espere una respuesta y actualice el contenido del área de texto.
En realidad, creo que incluso podría usar el script anterior tal como está. O al menos tómalo como punto de partida para tu propia aplicación.
Nunca lo intenté, pero si compila vim con ['+ clientserver' support] (http://vimdoc.sourceforge.net/htmldoc/remote.html) se puede ejecutar en modo cliente-servidor. Consulte [esta publicación del blog] (http://ajayfromiiit.wordpress.com/2009/10/21/server-and-client-mode-in-vim/) para obtener un ejemplo simple. –