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