Hãy xem TextAid (cụ thể là máy chủ Perl). Có thể bạn sẽ tìm thấy những ý tưởng hữu ích.
--RE-EDIT--
Vì tôi thích ý tưởng của bạn tôi đã xem xét một chút nữa.
Giả Vim được biên soạn với +clientserver
, bạn có thể khởi chạy vim như thế này:
$ vim --servername MYSERVER /path/to/tempfile`
trên hộp điều khiển từ xa. Vim được khởi động trong chế độ máy chủ và bạn có thể gửi nó ra lệnh như:
$ vim --servername MYSERVER --remote-send 'ihello<Esc>'
phải có:
hello
trên dòng đầu tiên, nếu bạn gửi:
$ vim --servername MYSERVER --remote-send 'A world<Esc>'
bạn có được:
hello world
Nếu bạn gửi:
$ vim --servername MYSERVER --remote-send 'yy5p'
bạn có được:
hello world
hello world
hello world
hello world
hello world
Nếu bạn gửi:
$ vim --servername MYSERVER --remote-send ':%s/hello/goodbye cruel<CR>'
bạn có được:
goodbye cruel world
goodbye cruel world
goodbye cruel world
goodbye cruel world
goodbye cruel world
đó là loại mát mẻ nhưng bạn cần phải gửi lại trạng thái mới của bộ đệm mà bạn sẽ làm bằng writin g tệp tạm thời và gửi nội dung của nó trở lại máy khách sau mỗi mỗi lệnh. Điều đó có nghĩa là rất nhiều đọc/ghi trên máy chủ của bạn. Người ta cũng có thể viết một macro gửi nội dung của bộ đệm tới một số tiến trình bên ngoài trên mỗi "thay đổi".
--EDIT--
Nếu bạn đã theo các liên kết thay vì gạt bỏ câu trả lời của tôi bạn sẽ thấy rằng phần mở rộng trên công trình bằng cách gửi nội dung của textarea đến máy chủ Perl qua HTTP.
Tôi không nghĩ rằng nó quan trọng nếu Vim là cục bộ hoặc trên một máy chủ ở xa.
Máy chủ ghi nó vào một tệp tạm thời sau đó được mở bằng Vim.
Khi Vim ghi tệp, nội dung của tệp đó sau đó được máy chủ gửi lại cho tiện ích.
Đoạn JS của bạn sẽ làm những gì mà tiện ích mở rộng thực hiện: lấy nội dung của vùng văn bản, gửi qua yêu cầu POST của AJAX tới máy chủ của bạn, chờ câu trả lời và cập nhật nội dung của vùng văn bản.
Thực ra, tôi nghĩ rằng bạn thậm chí có thể sử dụng tập lệnh ở trên. Hoặc ít nhất hãy coi đó là điểm khởi đầu cho ứng dụng của riêng bạn.
Không bao giờ thử nó, nhưng nếu bạn biên dịch vim với ['+ clientserver' support] (http://vimdoc.sourceforge.net/htmldoc/remote.html) nó có thể chạy trong chế độ máy khách-máy chủ. Xem [bài đăng trên blog này] (http://ajayfromiiit.wordpress.com/2009/10/21/server-and-client-mode-in-vim/) để biết ví dụ đơn giản. –