* A.J.Mechelynck <antoine.mechelynck@> [061021 08:01]:
> IMHO, the way to configure it is not by hacking Vim but (at
> least in console Vim) by having a properly-built
> termcap/terminfo which tells Vim which codes correspond to
> which keys.
IIRC, only user can tell what will Meta+Key send and it has
nothing to do with term*.  I'm talking about convert-meta
(inputrc) and eightBitInput (xterm).

> but no program can discriminate between different keypresses
> which your keyboard driver translates to the same keycode (or
> keycode sequence).
Vim assumes that Meta+Key always generates (Key | 0x80).  Code:

/*
 * Try to include modifiers in the key.
 * Changes "Shift-a" to 'A', "Alt-A" to 0xc0, etc.
 */
    int
extract_modifiers(key, modp)
    int     key;
    int     *modp;
{
...
    if ((modifiers & MOD_MASK_ALT) && key < 0x80
...
            )
    {
        key |= 0x80;
        modifiers &= ~MOD_MASK_ALT;     /* remove the META modifier */
    }
...

Add extra condition, '8bitmeta' option checking (which is on by
default) for example.  However, this will not solve all problems,
I will look further.


P.S. Why am I doing all this?  latexsuite plugin imaps <M-x> keys
and this generates problems in ru_RU.KOI8-R locale (8bit).  This
can't be fixed without hacking into latexsuite code and this bug
happend only if (x | 0x80) means something in current locale.
One workaround is to switch to UTF-8 locale.

-- 
Regards,
Sir Raorn.

Attachment: signature.asc
Description: Digital signature

Reply via email to