ruby << EOF in vimscript broken in Vim 7.1

Tim Pope vim-ruby-devel at
Wed May 16 11:47:32 EDT 2007

On Thu, May 17, 2007 at 12:52:31AM +1000, Doug Kearns wrote:
> On 5/16/07, Tim Pope <vim-ruby-devel at> wrote:
> > I'll look at the more tomorrow; I just wanted to get it out there so
> > people can think about it.
> That would be great if you can - I won't be able to get to it until
> next week.  Fortunately, you may be the only one currently in need of
> a fix. ;-)

I was actually researching another problem when I discovered this.
All the rails specific omnicompletion (and probably, everything
involving buffer loading), has stopped working for me as of 7.1, even
with all applicable optios set and identical versions of
rubycomplete.vim.  Mark Guzman, can you shed any light on this?

I'm a bit short on time this week myself, as I am attending RailsConf
this weekend.  There's still plenty of time before Vim 7.2 though, and
I've already gotten started.

One thing I have discovered so far:  There are only 23 uses of
contains=TOP in all the syntax files shipped with vim.  Of those, 17
are in ruby.vim.  Apparently, this feature isn't used nearly as widely
as I would have expected.  The more common solution involves ALLBUT.
ALLBUT does work as you would hope when a syntax file is included,
also discluding groups from the contained file, whereas TOP dumbly
takes the TOP of the including file (if that makes sense at all).

I originally switched to using TOP because it seemed cleaner than
constantly updating the list of discluded groups.  I am switching to
using contains=ALLBUT, at rubyNotTop.  This appears to fix the issue.
Keep an eye out for groups I forgot to add to the rubyNotTop cluster.

After the dust settles (maybe give it a couple of weeks), I'd like to
see a bugfix release, if nobody minds.  Unfortunately, syntax/vim.vim
will still read the ruby.vim that ships with Vim unless users take an
additional step.  But, at least we will have made that much possible.


More information about the vim-ruby-devel mailing list