thomas wrote:
2007/3/2, A.J.Mechelynck <[EMAIL PROTECTED]>:
I can map <Char-0x2019> but I cannot really test that it works (I can
just see
that it is represented correctly in the list of mappings), because that
character is not on my keyboard.
You do not need to type this character to test the mapping, you can
simply paste it with the mouse, while being in Insert mode. (By the
way, there is a useful package in Debian simply called "unicode" which
allows to look up easily for unicode characters from the shell
prompt.)
U+2019 is encoded as E2 80 99 while U+2200 is E2 88 80. I wonder if the
presence of a 0x80 in the middle might cause a bug in gvim.
The narrow no-break space is e2 80 af ; the en-dash, e2 80 93 ; the
em-dash, e2 80 94 ; the hyphen, e2 80 90 ; and the mapping of these
characters fails, so you might have a valid explanation, Tony.
Did you try the code snippet in my previous post?
Yes. It did not report any error, the apostrophe appears in the list
of mappings but when I type it, it is not replaced with "foo".
Thanks
Thomas
After testing all Alt-Gr combinations, I find that AltGr-Shift-b is ’ U+2019,
your apostrophe-like symbol, and I can reproduce your problem:
Bug report
==========
Summary: 3-byte UTF-8 codepoints whose middle byte is 0x80 are not recognised
to invoke a mapping.
Description:
When 'encoding' is UTF-8, if codepoints whose UTF-8 representation includes
0x80 in the second of three bytes (such as U+2018, upper-6 quote; U+2019,
upper-9 quote; U+201C double upper-6 quote; U+201D double upper-9 quote) are
used as the {lhs} of a mapping, these mappings will appear in the list, but
they will not be recognised when typed at the keyboard.
Vim Version affected:
VIM - Vi IMproved 7.0 (2006 May 7, compiled Feb 27 2007 23:05:12)
Included patches: 1-204
Compiled by [EMAIL PROTECTED]
Huge version with GTK2-GNOME GUI. Features included (+) or not (-):
[...]
Reproducible: Every time.
Steps to reproduce:
1. Find a computer whose keyboard has, available at the keyboard, at least one
character in the range U+2000 to U+203F. (On openSUSE Linux 10.2 with kde and
fr_BE "azerty" keyboard, AltGr-v, AltGr-V, AltGr-b and Alt-Gr-B are such
codepoints.)
2. Make sure that your version of gvim has +multi_byte and that 'encoding' is
set to UTF-8.
3. Define a mapping with such a codepoint in the {lhs}. Example:
:map! ’ foo
where the {lhs} is U+2019, upper-9 single quote.
4. List the mappings (":map!" with no argument). Notice that the mapping
defined at step 2 is listed.
5. In Insert mode, hit the key corresponding to the {lhs} of the new mapping
(here: AltGr-Shift-b to trigger ’).
Actual behaviour: The character is inserted literally; the mapping is not
invoked.
Expected behaviour: The mapping should have been invoked.
==============
End bug report
==============
Best regards,
Tony.
--
Have you ever wondered what makes Californians so calm? Besides drugs,
I mean. The answer is hot tubs. A hot tub is a redwood container
filled with water that you sit in naked with members of the opposite
sex, none of whom is necessarily your spouse. After a few hours in
their hot tubs, Californians don't give a damn about earthquakes or
mass murderers. They don't give a damn about anything , which is why
they are able to produce "Laverne and Shirley" week after week.
-- Dave Barry, "The Taming of the Screw"