On Thursday 27 June 2002 04:42 pm, Gray, Jeff wrote:
> > named pipes, and then open a connection to those pipes from Vim.
>
> Can you talk to an open pair of pipes from Vim?  I didn't think you
> could keep a live connection to another process in Vim in this way,
> hence my convoluted socket-based architecture.

No, named pipes (a/k/a fifo). To run a debugger command (perhaps 
step):

* open debugger output fifo for read.
* open debugger input fifo for write.
* send command to debugger.
* close debugger input fifo (if you have to)
* read lines from debugger output fifo till you get a "done" response
-- for each line, update line number display as needed.

The catch is that you can't do "normal" file operations in VimL. You 
can read a whole file, of course, and you can write or read to pipes 
or files.

The built-in Ruby interpreter keeps files open.

Have you looked at the clientserver stuff? (:he clientserver) It 
allows Vim to act as a remote editor. You could use it (I think) to 
run Vim as a front-end for a debugger.

Under Unix, it uses communications via X, and under Windows it uses 
either regular Windows messages, or you could use the OLE interface.

There is ruby-xlib-wrap, ruby/xlib, and rubyx11 in the RAA.

 From the help:

There are a number of VimL functions for scripting the command server.  
See
the description in |eval.txt| or use CTRL-] on the function name to 
jump to
the full explanation.

    synopsis				     explanation ~
    remote_expr( server, string, idvar)      send expression
    remote_send( server, string, idvar)      send key sequence
    serverlist()			     get a list of available servers
    remote_peek( serverid, retvar)	     check for reply string
    remote_read( serverid)		     read reply string
    server2client( serverid, string)	     send reply string
    remote_foreground( server)		     bring server to the front
-- 
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE