Dai uno sguardo allo TextAid (in particolare il server Perl). Forse troverai idee utili.
--re-EDIT--
Visto che mi piace la tua idea Ho guardato un po 'oltre.
Supponendo Vim è stato compilato con +clientserver
, è possibile avviare vim come questo:
$ vim --servername MYSERVER /path/to/tempfile`
sulla propria macchina remota. Vim viene avviato in modalità server ed è possibile inviare comandi come:
$ vim --servername MYSERVER --remote-send 'ihello<Esc>'
di avere:
hello
sulla prima riga, se si inviano:
$ vim --servername MYSERVER --remote-send 'A world<Esc>'
si ottiene:
hello world
Se si invia:
$ vim --servername MYSERVER --remote-send 'yy5p'
si ottiene:
hello world
hello world
hello world
hello world
hello world
Se si invia:
$ vim --servername MYSERVER --remote-send ':%s/hello/goodbye cruel<CR>'
si ottiene:
goodbye cruel world
goodbye cruel world
goodbye cruel world
goodbye cruel world
goodbye cruel world
che è sorta di fresco, ma è necessario inviare di nuovo il nuovo stato del buffer che dovresti fare scrivendo g il file temporaneo e inviare il suo contenuto al client dopo il ogni comando. Ciò significa molta lettura/scrittura sul tuo server. Si potrebbe anche scrivere una macro che invia il contenuto del buffer ad un processo esterno su ogni "modifica".
--EDIT--
Se tu avessi seguito il link, invece di licenziare la mia risposta si sarebbe visto che l'estensione sopra funziona inviando il contenuto del textarea al server via HTTP Perl.
Non penso che importi se Vim è locale o su un server remoto.
Il server lo scrive in un file temporaneo che viene quindi aperto con Vim.
Quando Vim scrive il file, il suo contenuto viene quindi rispedito all'estensione dal server.
il vostro pezzo di JS avrebbe fatto quello che fa l'estensione: afferrare il contenuto del textarea, inviarlo via una richiesta AJAX POST al server, attendere una risposta e aggiornare il contenuto della textarea con esso.
In realtà, penso che potresti persino usare lo script sopra così com'è. O almeno prendilo come punto di partenza per la tua app.
Mai provato, ma se si compila vim con ['+ supporto servererver'] (http://vimdoc.sourceforge.net/htmldoc/remote.html) può essere eseguito in modalità client-server. Vedi [questo post del blog] (http://ajayfromiiit.wordpress.com/2009/10/21/server-and-client-mode-in-vim/) per un semplice esempio. –