I've asked myself why Vim's system() function on Windows uses
vimrun.exe and shows a command prompt window. The only reason
I can think of is so that the user has a chance to quit the
external command using Ctrl-C.

Sorry if the following is not relevant (I have not followed
this thread). If you do not have to use system() to get results,
you can use :!start which is different from :! on Windows.
I believe that :!start does not use vimrun.exe.

There is some info in the following:
http://vim.wikia.com/wiki/Execute_external_programs_asynchronously_under_Windows

Thanks for your suggestion John. When I initially followed the link above I didn't realize that :!start ... is a special case on Vim for Windows so I assumed that :!start ... was just a shorthand for :!cmd /c start ... and because that doesn't DWIM I didn't respond to your reply.

Since then I've realized that :!start is almost what I need, because it does run external programs asynchronously without blocking Vim. However if you execute a command-line program (like Exuberant Ctags) the :!start ... command still opens a command prompt window, and contrary to :call system('...') the command prompt window is now actually positioned in front and above of Vim's main window, thereby undermining the whole point of not blocking Vim :-( (tested on Windows XP SP3, Vim 7.2).

 - Peter Odding

--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui