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

From: Thierry Volpiatto <[email-masked]>
Date: Sat, 27 Mar 2010 07:57:43 +0100

Dan Nicolaescu <[email-masked]> writes:

> 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?
Because with same config it fail on xterm and why not on urxvt?

> Another question: does M-a M-b M-f work in the shell in xterm?
M-a ==> à (a accent aigu)
M-f ==> æ 
M-b ==> â

Note: all this work in emacs with C-q M-a/b/f

Here my Xterm commands, no .Xdefaults, no .inputrc:

,----[ Output of bind -P ]
| abort can be found on "\C-g", "\C-x\C-g", "\e\C-g".
| accept-line can be found on "\C-j", "\C-m".
| alias-expand-line is not bound to any keys
| arrow-key-prefix is not bound to any keys
| backward-byte is not bound to any keys
| backward-char can be found on "\C-b", "\eOD", "\e[D".
| backward-delete-char can be found on "\C-h", "\C-?".
| backward-kill-line can be found on "\C-x\C-?".
| backward-kill-word can be found on "\e\C-h", "\e\C-?".
| backward-word can be found on "\e\e[D", "\eOd", "\e[1;3D", "\e[1;5D", "\e[5D", ...
| beginning-of-history can be found on "\e<".
| beginning-of-line can be found on "\C-a", "\eOH", "\e[1~", "\e[7~", "\e[H".
| call-last-kbd-macro can be found on "\C-xe".
| capitalize-word can be found on "\ec".
| character-search can be found on "\C-]".
| character-search-backward can be found on "\e\C-]".
| clear-screen can be found on "\C-l".
| complete can be found on "\C-i", "\e\e".
| complete-command can be found on "\e!".
| complete-filename can be found on "\e/".
| complete-hostname can be found on "\e@".
| complete-into-braces can be found on "\e{".
| complete-username can be found on "\e~".
| complete-variable can be found on "\e$".
| copy-backward-word is not bound to any keys
| copy-forward-word is not bound to any keys
| copy-region-as-kill is not bound to any keys
| dabbrev-expand is not bound to any keys
| delete-char can be found on "\C-d", "\e[3~".
| delete-char-or-list is not bound to any keys
| delete-horizontal-space can be found on "\e\\".
| digit-argument can be found on "\e-", "\e0", "\e1", "\e2", "\e3", ...
| display-shell-version can be found on "\C-x\C-v".
| do-lowercase-version can be found on "\C-xA", "\C-xB", "\C-xC", "\C-xD", "\C-xE", ...
| downcase-word can be found on "\el".
| dump-functions is not bound to any keys
| dump-macros is not bound to any keys
| dump-variables is not bound to any keys
| dynamic-complete-history can be found on "\e\C-i".
| edit-and-execute-command can be found on "\C-x\C-e".
| emacs-editing-mode is not bound to any keys
| end-kbd-macro can be found on "\C-x)".
| end-of-history can be found on "\e>".
| end-of-line can be found on "\C-e", "\eOF", "\e[4~", "\e[8~", "\e[F".
| exchange-point-and-mark can be found on "\C-x\C-x".
| forward-backward-delete-char is not bound to any keys
| forward-byte is not bound to any keys
| forward-char can be found on "\C-f", "\eOC", "\e[C".
| forward-search-history can be found on "\C-s".
| forward-word can be found on "\e\e[C", "\eOc", "\e[1;3C", "\e[1;5C", "\e[5C", ...
| glob-complete-word can be found on "\eg".
| glob-expand-word can be found on "\C-x*".
| glob-list-expansions can be found on "\C-xg".
| history-and-alias-expand-line is not bound to any keys
| history-expand-line can be found on "\e^".
| history-search-backward can be found on "\e[5~".
| history-search-forward can be found on "\e[6~".
| insert-comment can be found on "\e#".
| insert-completions can be found on "\e*".
| insert-last-argument can be found on "\e.", "\e_".
| kill-line can be found on "\C-k".
| kill-region is not bound to any keys
| kill-whole-line is not bound to any keys
| kill-word can be found on "\ed".
| magic-space is not bound to any keys
| menu-complete is not bound to any keys
| next-history can be found on "\C-n", "\eOB", "\e[B".
| non-incremental-forward-search-history can be found on "\en".
| non-incremental-forward-search-history-again is not bound to any keys
| non-incremental-reverse-search-history can be found on "\ep".
| non-incremental-reverse-search-history-again is not bound to any keys
| operate-and-get-next can be found on "\C-o".
| overwrite-mode is not bound to any keys
| possible-command-completions can be found on "\C-x!".
| possible-completions can be found on "\e=", "\e?".
| possible-filename-completions can be found on "\C-x/".
| possible-hostname-completions can be found on "\C-x@".
| possible-username-completions can be found on "\C-x~".
| possible-variable-completions can be found on "\C-x$".
| previous-history can be found on "\C-p", "\eOA", "\e[A".
| quoted-insert can be found on "\C-q", "\C-v", "\e[2~".
| re-read-init-file can be found on "\C-x\C-r".
| redraw-current-line is not bound to any keys
| reverse-search-history can be found on "\C-r".
| revert-line can be found on "\e\C-r", "\er".
| self-insert can be found on " ", "!", "\"", "#", "$", ...
| set-mark can be found on "\C-@", "\e ".
| shell-backward-kill-word is not bound to any keys
| shell-backward-word is not bound to any keys
| shell-expand-line can be found on "\e\C-e".
| shell-forward-word is not bound to any keys
| shell-kill-word is not bound to any keys
| start-kbd-macro can be found on "\C-x(".
| tab-insert is not bound to any keys
| tilde-expand can be found on "\e&".
| transpose-chars can be found on "\C-t".
| transpose-words can be found on "\et".
| tty-status is not bound to any keys
| undo can be found on "\C-x\C-u", "\C-_".
| universal-argument is not bound to any keys
| unix-filename-rubout is not bound to any keys
| unix-line-discard can be found on "\C-u".
| unix-word-rubout can be found on "\C-w".
| upcase-word can be found on "\eu".
| 
| [...] ==> all vi commands are not bound
| 
| yank can be found on "\C-y".
| yank-last-arg can be found on "\e.", "\e_".
| yank-nth-arg can be found on "\e\C-y".
| yank-pop can be found on "\ey".
`----

> Do you have some non-standard TERM or TERMINFO settings?
>From xterm:
echo $TERM ==> xterm
echo $TERMINFO ==> nothing

> Was your xterm compiled in some different way?

Compiled with toolbar truetype unicode
[I] x11-terms/xterm
     Available versions:  250 ~255 {Xaw3d toolbar truetype unicode}
     Installed versions:  250(08:33:26 12/11/09)(toolbar truetype unicode -Xaw3d)
     Homepage:            http://dickey.his.com/xterm/
     Description:         Terminal Emulator for X Windows

> What OS are you using?
Gentoo.

>   > >   > 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/
>
>
>
>
>

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/