On Tue, 15 Aug 2006 at 4:43pm, Bill McCarthy wrote: > On Tue 15-Aug-06 9:27am -0600, Benji Fisher wrote: > > Thanks for looking at this problem. It looks like a Vim > parsing error. > > > I remember something about not allowing :endwhile on the > > same line as the :while , separated by | , but I cannot > > find it in the docs today. > > I thought I had too but only could find: > > *:endf* *:endfunction* *E126* *E193* > :endf[unction] The end of a function definition. Must be on > a line by its own, without other commands. > > I also looked for all references to while and endw within a > text line of each other: > > :helpg .*\n\=.*\<while\&.*\n\=.*\<endw > > One of the 10 hits implies single lines are ok: > > It is allowed to have a "while" or "if" command > completely in the executed string: > :execute 'while i < 5 | echo i | let i = i + 1 | endwhile' > > Another gives a warning about commands I'm not using: > > NOTE: ":append" and ":insert" don't work properly in between > ":if" and ":endif", ":for" and ":endfor", ":while" and > ":endwhile". >
I haven't been following the thread, but thought the below information is relevant. The commands that can't be followed by a '|' are listed under ":help :bar". There are some tricks to workaround, such as using :exec and <NL>, but they don't work for function. A combination of :exec and <NL> can be used: exec "function! T()\<NL>call input('T')\<NL>endfunction" -- HTH, Hari __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com