On Tue, Apr 17, 2012 at 05:32:45PM -0400, Benjamin R. Haskell wrote:
> Also, last time I checked libtermkey out, there were quirks even
> with the XTerm implementation of the "extended" sequences.  E.g.:
> 
> On a U.S. QWERTY keyboard, where the row with numerals is:
> unshifted: `1234567890
> shifted:   ~!@#$%^&*()
> 
> With <Shift> depressed, using the libtermkey demo, I get:
> <S-~> ! <S-@> # $ % <S-^> & * ( )
> 
> That is: Depending on how you look at it: 8 of 11 characters don't
> detect that <Shift> is depressed; or 3 of the characters that can't
> be typed without <Shift> get an extra <Shift> modifier.
> 
> And even for the <Tab> <C-i> <C-I>, case:
> <Tab> <C-i> <C-S-I>
> 
> (Why the capital 'I' in addition to 'S-'?  Or is it just a
> libtermkey demo convention?)
> 
> The Vim-relevant point to all this being: it seems like more
> standardization is necessary (not sure from XTerm or libtermkey).
> Otherwise we're going to trade "I can't map <C-i>" problems for "I
> can't map <~> or <^> or <I>".

Yeah, those unfortunately are an xterm bug.

While it does correctly make some attempt at implementing CSI u, it
fails to observe that the Shift modifier should specifically /not/ be
encoded in the modifier bits, because that modifier was used to obtain
the Unicode codepoint in the first place. Thus there is no "Shift-!" as
such, Shift is simply the modifier used to obtain !. By pressing the
three pieces-of-plastic labeled Ctrl, Shift, 1!, you should obtain a key
denoting <Ctrl-!>, encoded as CSI 33;5 u. Again you see it on your
Ctrl-I vs. Ctrl-Shift-I.

Potentially libtermkey ought to fix up these, and mask away the Shift
modifier on modified Unicode. But then you have to exempt Backspace,
Tab, Enter and Space... Fun times...

-- 
Paul "LeoNerd" Evans

[email protected]
ICQ# 4135350       |  Registered Linux# 179460
http://www.leonerd.org.uk/

Attachment: signature.asc
Description: Digital signature

Raspunde prin e-mail lui