> This would be easier if we actually had a solid 'new design'. We don't.
> We just have a bunch of rough ideas. One of those ideas had a drafted
> structure and suggestion that it be used only in the input queue, where
> the memory inefficiency would not be a concern. I have pointed out that
> there are many other problems to solve: right hand sides of mappings,
> feedkeys(), registers for macro recordings (which indirectly affect
> buffers, as registers must be able to be put and yanked), representation
> in strings, and more (I just thought of the :normal command, and I'm
> sure there is still more...). I pointed out that if you use the
> structure to solve all these problems, memory efficiency is most
> certainly a concern.

> My response, to both that specific proposal and that general approach is
> that I don't think it is a good way, because it is massively
> backwards-incompatible and a lot of work.

> But as a community member, I'd prefer it if it affected my code and
> plugins as little as possible, and I consider it essential that Vim
> doesn't become significantly less efficient because of this. And if it
> were me considering an implementation, I'd certainly be looking for the
> option that was the least work! YMMV.

So basically backward compatibility and memory efficiency are what
hold vim back in 1970. You made a lot of good points and reasons for
it to be so, but I'm always sad when good ideas are refused just
because of old scenarios. I mean I wouldn't care if vim went as far as
doubling its memory usage and broke backward compatibility if what I
gain in exchange is modernity, but I guess not everyone is like me. I
just think old hardware should use old software and that new hardware
should use new software, I understand backward compatibility is what
makes a software like vim able to run on my toaster, but I wouldn't
mind using an older version of vim on that toaster.

That said, I think there is a compromise. Vim has features, maybe the
new input mechanism could simply be a feature, something like
+enhanced_term_input (like we have for +python or +eval), and plugins
could simply check with stuffs like:

if has('enhanced_input') == 0
  echom 'Vim wasn't compiled with +enhanced_input, the plugin's
default mappings (<C-i>, etc) were remaped'
  call s:UseOldMappings()
endif

I think this would please everyone. People wanting vim not to change a
single bit can, people wanting it to evolve can. Of course there's
still all the issues discussed above to solve, but at least I think
with this proposal things we'll get less resistance ;)

Thanks,
Philippe


-- 
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