Wednesday, May 4, 2011

Re: dead key bug.

> The issue with the dead keys is random. That is, sometimes it happens,
> sometimes not. Is difficult to predict when it will happen. I work in
> a Windows XP Professional machine using ISO-8859-1 character set
> (cp1252 on Windows and cp850 in a MSDOS box) the official language is
> Brazilian Portuguese and I use an US International keyboard layout.
> The last made test was in a notebook with official language English
> (United States), also using an US International keyboard layout. In
> that machine the cp1252 (ISO-8859-1) is still used in Windows but
> MSDOS boxes use cp437 code page. The operating system in this notebook
> is a Windows XP Home.

Mmm. I guess it's something to do with the US International keyboard
layout, and Vim not quite understanding it.

The randomness is the most annoying part, and will make this difficult
to track down. If you can figure out when it happens, that would be
tremendously helpful.

> With this knowledge I started to read all documentation about changes
> made in this version and stumbled upon the 'lmap', 'keymap',
> 'iminsert' and 'imsearch' options. I read all the documentation found
> in the 'mbyte.txt' file and started to think that could be something
> it this matter. I build my own 'accents.vim' file and put it in my
> $RUNTIMEPATH/keymap folder. The file is strait forward since I only
> needed some keys. The important part of it is:
>
> \"<Space> \"
> '<Space> '
> `<Space> `
> ~<Space> ~
> ^<Space> ^
>
> I really thought this would solve the problem but, don't. The problem
> persists. Sometimes the key sequence works, sometimes don't. That's
> why I think there is a Vim bug within this matter.

A workaround might be to use a keymap, but also switch to a standard US
English keyboard layout (which has no dead keys). All the dead key
handling would be done by Vim then. If Windows switches layouts nicely
as you switch applications and/or remembers the layout is different for
Vim, this could perhaps work quite nicely.

Another thing to check is that your Vim is compiled with
+multi_byte_ime. With that and iminsert=2 things should theoretically
play nicely with input methods.

> What I really need this time is some thoughts about how to debug Vim
> in a Windows XP environment. How to download the Vim sources and what
> kind of debug to use, cdb or gdb. And, if possible, in what files
> should I start search.

Have a look around the website and you'll see how to get the Vim
sources. It's worth getting recent sources from version control, or
applying the patches to a tarball to bring it up to a fairly recent
version, IMHO.

Compilation instructions are there too, or in the sources--I can't
really remember, but I don't think they're hard to find. Compiling Vim
is pretty straightforward. Just make sure you choose something like
'huge' features so you don't get a small Vim which might not have full
multibyte/IME support, etc..

I guess you should use the debugger that matches your build environment,
so if you use the MS toolset, use the MS debugger, but if you use MinGW
toolset with gcc, use gdb.

This bug is probably win32-related, and quite probably even win32-GUI
related, so I suggest the gui_w32.c and os_win32.c are the first places
to fish around, and other similarly named files. Vim doesn't have all
that many source files, so it's not too hard to find which file to look
in--harder is finding the right part of the files, which are often
pretty huge.

Good luck!

Ben.

--
You received this message from the "vim_use" 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

No comments: