[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Adding xterm-extras to Emacs
From: |
Stefan Monnier |
Subject: |
Re: Adding xterm-extras to Emacs |
Date: |
Fri, 12 Oct 2007 12:18:38 -0400 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/23.0.50 (gnu/linux) |
>>> However, Alt+Ctrl+Right is shown as "<C-M-right>" but not "<C-A-right>"
>>> while Alt+Right is shown as "<A-right>" but not <M-right>. You can see
>>> they are _INCONSISTENT_.
>>
>> Can you check C-h l as well to see if Alt+Ctrl+Right sends ESC followed by
>> the escape sequence for Ctrl+Right and if Alr+Right does the same.
>> If not, then the inconsistency is in xterm and should be reported there
>> (after reporting there, we may also decide to workaround the problem in
>> Emacs by binding those escape sequences to M-right instead).
> Yes, it looks like Alt+Ctrl+Right and Alt+Right send ESC.
> Alt+Ctrl+Right ^[[1;7C
> Alt+Right ^[[1;3C
You mean "it looks like they *don't*"! The ESC you see are the first char
of an escape sequence, not standalone ESC characters.
What "metaSendsEscape" is supposed to do is to turn Alt+A into ESC A, so if
Right sends ^[[C (aka ESC [ C), then Alt+Right should send ^[^[[C (aka ESC
ESC [ C). Please report this as a feature request to xterm's maintainers.
But looking at lisp/xterm.el now I see that we indeed inconsistently map
things to S-M-foo but A-foo, so the inconsistency is our fault and should be
corrected with the patch below,
Stefan
--- xterm.el 09 oct 2007 01:14:42 -0400 1.51
+++ xterm.el 12 oct 2007 11:28:38 -0400
@@ -89,18 +89,18 @@
(define-key map "\e[23;6~" [C-S-f11])
(define-key map "\e[24;6~" [C-S-f12])
- (define-key map "\eO3P" [A-f1])
- (define-key map "\eO3Q" [A-f2])
- (define-key map "\eO3R" [A-f3])
- (define-key map "\eO3S" [A-f4])
- (define-key map "\e[15;3~" [A-f5])
- (define-key map "\e[17;3~" [A-f6])
- (define-key map "\e[18;3~" [A-f7])
- (define-key map "\e[19;3~" [A-f8])
- (define-key map "\e[20;3~" [A-f9])
- (define-key map "\e[21;3~" [A-f10])
- (define-key map "\e[23;3~" [A-f11])
- (define-key map "\e[24;3~" [A-f12])
+ (define-key map "\eO3P" [M-f1])
+ (define-key map "\eO3Q" [M-f2])
+ (define-key map "\eO3R" [M-f3])
+ (define-key map "\eO3S" [M-f4])
+ (define-key map "\e[15;3~" [M-f5])
+ (define-key map "\e[17;3~" [M-f6])
+ (define-key map "\e[18;3~" [M-f7])
+ (define-key map "\e[19;3~" [M-f8])
+ (define-key map "\e[20;3~" [M-f9])
+ (define-key map "\e[21;3~" [M-f10])
+ (define-key map "\e[23;3~" [M-f11])
+ (define-key map "\e[24;3~" [M-f12])
(define-key map "\eO4P" [M-S-f1])
(define-key map "\eO4Q" [M-S-f2])
@@ -164,12 +164,12 @@
(define-key map "\e[1;8F" [C-M-S-end])
(define-key map "\e[1;8H" [C-M-S-home])
- (define-key map "\e[1;3A" [A-up])
- (define-key map "\e[1;3B" [A-down])
- (define-key map "\e[1;3C" [A-right])
- (define-key map "\e[1;3D" [A-left])
- (define-key map "\e[1;3F" [A-end])
- (define-key map "\e[1;3H" [A-home])
+ (define-key map "\e[1;3A" [M-up])
+ (define-key map "\e[1;3B" [M-down])
+ (define-key map "\e[1;3C" [M-right])
+ (define-key map "\e[1;3D" [M-left])
+ (define-key map "\e[1;3F" [M-end])
+ (define-key map "\e[1;3H" [M-home])
(define-key map "\e[2~" [insert])
(define-key map "\e[3~" [delete])
@@ -206,10 +206,10 @@
(define-key map "\e[5;8~" [C-M-S-prior])
(define-key map "\e[6;8~" [C-M-S-next])
- (define-key map "\e[2;3~" [A-insert])
- (define-key map "\e[3;3~" [A-delete])
- (define-key map "\e[5;3~" [A-prior])
- (define-key map "\e[6;3~" [A-next])
+ (define-key map "\e[2;3~" [M-insert])
+ (define-key map "\e[3;3~" [M-delete])
+ (define-key map "\e[5;3~" [M-prior])
+ (define-key map "\e[6;3~" [M-next])
(define-key map "\e[4~" [select])
(define-key map "\e[29~" [print])
@@ -425,18 +425,18 @@
(define-key map [f47] [C-S-f11])
(define-key map [f48] [C-S-f12])
- (define-key map [f49] [A-f1])
- (define-key map [f50] [A-f2])
- (define-key map [f51] [A-f3])
- (define-key map [f52] [A-f4])
- (define-key map [f53] [A-f5])
- (define-key map [f54] [A-f6])
- (define-key map [f55] [A-f7])
- (define-key map [f56] [A-f8])
- (define-key map [f57] [A-f9])
- (define-key map [f58] [A-f10])
- (define-key map [f59] [A-f11])
- (define-key map [f60] [A-f12])
+ (define-key map [f49] [M-f1])
+ (define-key map [f50] [M-f2])
+ (define-key map [f51] [M-f3])
+ (define-key map [f52] [M-f4])
+ (define-key map [f53] [M-f5])
+ (define-key map [f54] [M-f6])
+ (define-key map [f55] [M-f7])
+ (define-key map [f56] [M-f8])
+ (define-key map [f57] [M-f9])
+ (define-key map [f58] [M-f10])
+ (define-key map [f59] [M-f11])
+ (define-key map [f60] [M-f12])
map)
"Keymap of possible alternative meanings for some keys.")
- Re: Adding xterm-extras to Emacs, Leo, 2007/10/11
- Re: Adding xterm-extras to Emacs, Dan Nicolaescu, 2007/10/11
- Re: Adding xterm-extras to Emacs, Stefan Monnier, 2007/10/11
- Re: Adding xterm-extras to Emacs, Leo, 2007/10/11
- Re: Adding xterm-extras to Emacs, Stefan Monnier, 2007/10/11
- Re: Adding xterm-extras to Emacs, Leo, 2007/10/11
- Re: Adding xterm-extras to Emacs, Stefan Monnier, 2007/10/11
- Re: Adding xterm-extras to Emacs, Leo, 2007/10/12
- Re: Adding xterm-extras to Emacs,
Stefan Monnier <=
- Re: Adding xterm-extras to Emacs, Leo, 2007/10/13
Re: Adding xterm-extras to Emacs, Leo, 2007/10/13