On Tue, Apr 17, 2012 at 5:32 PM, Benjamin R. Haskell <[email protected]> wrote:
> If it were as simple as pointing out where the central "Insert keystroke
> into processing queue" functionality lives, my guess is that it'd have been
> done already.  (And we could move on to the "Yay! Finally! So, what tweaks
> are left?" phase.)

I certainly don't think this is going to be trivial... we're talking
about changing one of the central parts of vim, the input queue. Even
if the simple case is trivial (basic keyboard input) that doesn't mean
there aren't dangers lurking in macros, registers, maps, etc.

But that doesn't mean it's not worthwhile. Frankly, the vim input
mechanism is pretty broken nowadays. Contrary to what is in the
design-goals there are lots of keys that cannot be mapped, in either
terminal or GUI mode (ctrl-shift-anything, ctrl-0, ctrl-;). There are
keys that act identically for no apparent reason (ctrl-3 is <ESC>),
and there are keys that you really don't want to map (alt-anything)
because you can't tell the difference between the key and pressing
<ESC>key.

And while some of these limitations come from terminfo/termcap, they
carry over to the GUI for no obvious purpose.

> The fact that it's not backwards compatible is also (unfortunately)
> problematic (Cf. Tony Mechelynck's questions about whether <C-]> and <Esc>
> will be identical in the future).

Yes, they will. At least if you want them to be. I mentioned this in
my email a couple weeks ago -- vim should, by default, map <C-[> to
<ESC>, <C-i> to <Tab>, etc. But if the user wants it to be different
then they can do a map. The only people who would be bitten are those
who do something like:

:map <C-i> call <SID>MyTab()

And expect pressing <Tab> will call MyTab() if they're using the GUI
or a newer terminal that sends CSI sequences.

There really shouldn't be a backwards compatibility concern -- older
terminals will still send the same key sequences and vim will still
interpret them the same way. But at least we wouldn't be limited to
the lowest common denominator for terminals as we are now. It's akin
to not implementing colors at all because not all terminals can
display more than two.

Tom Sorensen

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