[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cannot remap umlaut keys

From: Andreas Voegele
Subject: Re: Cannot remap umlaut keys
Date: Fri, 07 Nov 2003 20:57:52 +0100
User-agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (gnu/linux)

Stefan Monnier writes:

>> I used to remap the umlaut keys in CC Mode but the following key
>> bindings no longer work when Emacs 21.3.1 is run under X.  The
>> bindings work if Emacs is started on the Linux console though.
>> (add-hook 'c-mode-common-hook
>>  '(lambda ()
>>     (local-set-key [?\366] "{")    ; ö -> {
>>     (local-set-key [?\344] "}")    ; ä -> }
>>     (local-set-key [?\326] "[")    ; Ö -> [
>>     (local-set-key [?\304] "]")    ; Ä -> ]
>>     (local-set-key [?\337] "\\"))) ; ß -> \
> ?\366 is not the same as ö.  How about
>    (local-set-key [ö] "{")

[ö] or [?ö]?  I forgot to mention that I tried to use [?ö] before I
posted my article.  [?ö] (or [ö]) neither works under X *nor* on the

    state 0x0, keycode 47 (keysym 0xf6, odiaeresis), same_screen YES,
    XLookupString gives 1 bytes:  "ö"

I'm pretty sure that [?\366] worked in earlier versions of Emacs.  I
think that I started to use the above piece of code when Emacs 19 was

> This might not always work, tho.  If it doesn't, then maybe your
> locale is not set properly.

The locale is set to de_DE.iso88591 which, according to "locale -a" is
supported by the C library. I also tried to use de_DE.

> The problem is that the .emacs file should be in the same
> coding-system as your keyboard (and the keyboard's coding system
> under X is determined by your locale).

My .emacs is encoded in ASCII.  I encoded it in Latin-1 when I
experimented with [?ö].  I also tried UTF-8.

I just realized that (local-set-key [?ö] "{") works under X if the
expression is executed from within the buffer that contains the C
file.  If the expression is evaluated in the c-mode-common-hook it
doesn't work.  On the other hand, it is no problem to bind { to keys
like f1, return or a, for example.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]