Subject: Re: bug#5785: 24.0.50; Fail to bind C-. in emacs -nw from xterm.

From: Dan Nicolaescu <[email-masked]>
Date: Fri, 26 Mar 2010 16:42:03 -0700 (PDT)

Thierry Volpiatto <[email-masked]> writes:

  > Dan Nicolaescu <[email-masked]> writes:
  > 
  > > Thierry Volpiatto <[email-masked]> writes:
  > >
  > >   > Hi,
  > >   > I am unable to bind C-. in xterm.
  > >   > 
  > >   > A)
  > >   > 
  > >   > 1) I start xterm without my config of .Xdefaults.
  > >
  > > Can you please show the results of 
  > > xrdb -q | grep -i xterm 
  > >
  > > at this point?
  > Nothing (i have no .Xressources)
  > 
  > > Do you have any .Xdefaults settings for emacs?
  > > Can you please disable those too and verify that 
  > > xrdb -q | grep -i emacs
  > > doesn't print anything?
  > Nothing.
  > 
  > >   > 2) In scratch i write and eval:
  > >
  > > Please use 
  > > emacs -Q -nw
  > >
  > > for this step
  > >
  > >   > (global-set-key (kbd "C-.") #'(lambda () (interactive) (message "hello")))
  > >   > 
  > >   > 3) When i hit C-. "~" is printed in buffer (*scratch*).
  > >   > 
  > >   > B)
  > >   > 
  > >   > If i bind the same key (C-.) in a function that use the minibuffer, 
  > >   > (define-key anything-map (kbd "C-.") 'anything-find-files-down-one-level)
  > >   > 
  > >   > then,
  > >   > 27;6;46~ is printed in anything prompt.
  > >   > 
  > >   > NOTE:
  > >   > ----
  > >   > Also,
  > >   > Alt doesn't work in emacs without proper Xterm config in .Xdefault:
  > >   > XTerm*metaSendsEscape:  True
  > >
  > > This is a sign that something might be wrong in your setup, it should
  > > work by default.
  > Maybe, i don't use much Xterm, my favorite is urxvt.
  > But urxvt handle M-( correctly by default (No config).
  > So same test as above in same conditions work fine in urxvt and not in
  > Xterm.
  > So if it was my setting at system level, it should fail also with urxvt.

Why would it?

Another question: does M-a M-b M-f work in the shell in xterm?

Do you have some non-standard TERM or TERMINFO settings?

Was your xterm compiled in some different way?

What OS are you using?

  > >   > Important settings:
  > >   >   value of $LC_ALL: C
  > >   >   value of $LC_COLLATE: C
  > >   >   value of $LC_CTYPE: fr_FR.UTF-8
  > >   >   value of $LC_MESSAGES: nil
  > >   >   value of $LC_MONETARY: nil
  > >   >   value of $LC_NUMERIC: nil
  > >   >   value of $LC_TIME: nil
  > >   >   value of $LANG: fr_FR.UTF-8
  > >   >   value of $XMODIFIERS: nil
  > >   >   locale-coding-system: utf-8-unix
  > >   >   default enable-multibyte-characters: t
  > >
  > > I don't know much about LANG stuff, but is it OK to have LANG=fr_FR.UTF-8 and LC_ALL=C? 
  > 
  > It's not a problem, LC_ALL=C is set locally in Emacs with setenv to
  > avoid other bug with shell prompts in Emacs, but that's another problem.
  > Anyway when set, LC_ALL overhide all other locale setting.
  > OTOH LANG set all to it's value but allow setting other variables.
  > So in emacs (no emacs -Q), my locale is:
  > ,----
  > | LANG=fr_FR.UTF-8
  > | LC_CTYPE="C"
  > | LC_NUMERIC="C"
  > | LC_TIME="C"
  > | LC_COLLATE="C"
  > | LC_MONETARY="C"
  > | LC_MESSAGES="C"
  > | LC_PAPER="C"
  > | LC_NAME="C"
  > | LC_ADDRESS="C"
  > | LC_TELEPHONE="C"
  > | LC_MEASUREMENT="C"
  > | LC_IDENTIFICATION="C"
  > | LC_ALL=C
  > `----
  > 
  > But when i start emacs -Q, my locale are all utf-8
  > except LC_COLLATE for US sorting, that' my system settings.
  > 
  > ,----
  > | LANG=fr_FR.UTF-8
  > | LC_CTYPE=fr_FR.UTF-8
  > | LC_NUMERIC="fr_FR.UTF-8"
  > | LC_TIME="fr_FR.UTF-8"
  > | LC_COLLATE=C
  > | LC_MONETARY="fr_FR.UTF-8"
  > | LC_MESSAGES="fr_FR.UTF-8"
  > | LC_PAPER="fr_FR.UTF-8"
  > | LC_NAME="fr_FR.UTF-8"
  > | LC_ADDRESS="fr_FR.UTF-8"
  > | LC_TELEPHONE="fr_FR.UTF-8"
  > | LC_MEASUREMENT="fr_FR.UTF-8"
  > | LC_IDENTIFICATION="fr_FR.UTF-8"
  > | LC_ALL=
  > `----
  > 
  > So when testing emacs -Q -nw in Xterm i have these locales.
  > And no .Xdefaults or .Xressources.
  >  
  > > Maybe there's a problem with the way your keyboard is set up?  Maybe
  > > someone that knows about french keyboards can help... 
  > So i think my keyboard config is ok.
  > 
  > >   > Load-path shadows:
  > 
  > [...]
  > 
  > >   > /home/thierry/elisp/ngnus/lisp/smiley hides /usr/share/emacs/24.0.50/lisp/gnus/smiley
  > >   > /home/thierry/elisp/ngnus/lisp/score-mode hides /usr/share/emacs/24.0.50/lisp/gnus/score-mode
  > >   > /home/thierry/elisp/ngnus/lisp/gnus-start hides /usr/share/emacs/24.0.50/lisp/gnus/gnus-start
  > >   > /home/thierry/elisp/emms/lisp/tq hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/tq
  > >   > /home/thierry/elisp/ngnus/lisp/time-date hides /usr/share/emacs/24.0.50/lisp/calendar/time-date
  > >   > /home/thierry/elisp/ngnus/lisp/parse-time hides /usr/share/emacs/24.0.50/lisp/calendar/parse-time
  > >
  > > These are no good.  Do all these go away if you use emacs -Q -nw  ?
  > Yes that's ngnus, it is not enabled in emacs -Q. That's remind me to
  > disable it and use emacs gnus.
  > 
  > -- 
  > Thierry Volpiatto
  > Gpg key: http://pgp.mit.edu/