On Wednesday, June 20, 2012 10:59:43 AM UTC-5, Christian Brabandt wrote: > On Wed, June 20, 2012 17:21, Ben Fritz wrote: > > gvim -N -u NONE -i NONE > > :set shellxquote= shellquote=\" shelltemp > > :.!echo "test|moretest" > > > > shell returned 255 > > > Yes, I am pretty sure: > gvim -u NONE -I NONE -N > :set shellquote=\" shellxquote= shelltemp verbose=4 > :.!echo "test|moretest" > > Calling shell to execute: ""echo "test|moretest"" > <C:\DOCUME~1\de914854\LOCALS~1 > > > Shell returned 255. > > 'moretest""' is not recognized as an internal or external command, > operable program or batch file. >
Thanks for that, I didn't know about getting the command passed to the shell with 'verbose'. That might be useful to mention in :help 'verbose' :-) I note the command passed to the shell printed by the verbose setting doesn't seem to account for shellxquote or shellcmdflag or other such things. > As you can see, in front of the | there is not filename put. > Well, possibly the quoting is wrong, but it's not Vim's fault. > Frankly, I really have lost track, which of the shell options need to > be set (especially with the latest patches, that changed how the > quoting works on Windows) and how quoting works on cmd.exe. When I > used Vim on Windows more regularly, I used Cygwin bash as shell. > After this input, I tried escaping the '|' for the sake of the cmd.exe shell. Either of the following work: :set shellxquote= shellquote=\" shelltemp :.!echo "test^|moretest" :!echo "test^|moretest" :echo system('echo "test|moretest"') Note, the system() function is now inconsistent with filter or :! command, as it does not require escaping. :set shellxquote=( shellquote= noshelltemp :.!echo "test|moretest" :!echo "test|moretest" :echo system('echo "test|moretest"') Note, with noshelltemp everything works consistently and as expected with the shellx?quote settings at their default values. > > Hm, perhaps you need to set the shelloptions to perl? > I'd rather not set the shell to Perl every time I want to run an external Perl command. -- 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