From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.help Subject: RE: M-x mystery Date: Mon, 2 Jan 2012 15:25:40 -0800 Message-ID: <408087A3D7BE475B884C0F93CE2298C7@us.oracle.com> References: Your message of Mon, 2 Jan 2012 10:26:08 -0800 <20120102223315.3E60F1810C9@neo.msri.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1325546771 27760 80.91.229.12 (2 Jan 2012 23:26:11 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 2 Jan 2012 23:26:11 +0000 (UTC) To: , Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Jan 03 00:26:06 2012 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RhrGV-0003gc-SQ for geh-help-gnu-emacs@m.gmane.org; Tue, 03 Jan 2012 00:26:04 +0100 Original-Received: from localhost ([::1]:45060 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RhrGV-0007Cq-8b for geh-help-gnu-emacs@m.gmane.org; Mon, 02 Jan 2012 18:26:03 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:58726) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RhrGP-0007Cl-Tn for help-gnu-emacs@gnu.org; Mon, 02 Jan 2012 18:25:58 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RhrGO-0007PM-Me for help-gnu-emacs@gnu.org; Mon, 02 Jan 2012 18:25:57 -0500 Original-Received: from acsinet15.oracle.com ([141.146.126.227]:22737) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RhrGO-0007PE-GX for help-gnu-emacs@gnu.org; Mon, 02 Jan 2012 18:25:56 -0500 Original-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by acsinet15.oracle.com (Switch-3.4.4/Switch-3.4.4) with ESMTP id q02NPsOO004856 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 2 Jan 2012 23:25:54 GMT Original-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q02NPrM2004181 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 2 Jan 2012 23:25:54 GMT Original-Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62]) by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q02NPrHK008555; Mon, 2 Jan 2012 17:25:53 -0600 Original-Received: from dradamslap1 (/10.159.57.64) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 02 Jan 2012 15:25:53 -0800 X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <20120102223315.3E60F1810C9@neo.msri.org> Thread-Index: AczJnobFvtN6cBMLSYKuFePtEU7yWwABK8fQ X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090204.4F023D03.0011,ss=1,re=0.000,fgs=0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 1) X-Received-From: 141.146.126.227 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:83301 Archived-At: > The problem is the variable meta-prefix-char, which is supposed to > alter that relationship. > > If I load a file containing only the command (setq > meta-prefix-char [f5]) and check the value of the variable, > the answer is [f5]. > > ******** Yet, after that, ALT-x is still interpreted as ESC > x. ******** > > You might say that [f5] is not a valid prefix key. But [f2] is (it's > bound to 2C-mode-map in two-column.el). After I set meta-prefix-char > to [f2], typing ALT-x is still interpreted as ESC x, not [f2] x. I'm really no expert on these things. No doubt someone will clarify better. But [f2] is not a _character_. (It is a vector.) A character is a non-negative integer (in a certain range) - see the Elisp manual, node `Character Codes'. `meta-prefix-char' is a user option. Try using Customize to change its value. Customize does type-checking, and it will not even allow you to set the variable to [f2]. It raises this error: "This field should contain a single character" (It should say "must", not "should".) > In fact, I can't even duplicate the example near the bottom of the > "Functions for Key Lookup" page (link above). Namely, setting > meta-prefix-char to 24 **should** make M-x behave like C-x, according > to that page. But that does not happen; I think it does. Try `C-h k M-s' or `C-h k C-M-s'. They correspond to `C-x s' and `C-x C-x', respectively. > even with meta-prefix-char=24, > ALT-x is interpreted as ESC x. I think you're doing things backwards. Setting `meta-prefix-char' to the `C-x' character (24) makes what used to be treated as `C-x SOMETHING' be treated as `M-SOMETHING'. If `C-x x' were defined as a command, then `M-x' would then invoke that command (and not `execute-extended-command'). Since `C-x x' is undefined by default, after setting `meta-prefix-char' to 24, `C-h k M-x' says it is undefined. In any case, doing that in no way affects the treatment of Meta as ESC, AFAIK. > What have I misunderstood? 1. The value of `meta-prefix-char' needs to be a character. 2. I think the treatment of Meta as ESC happens at a different level. Node `Format of Keymaps' says this: "Keymaps do not directly record bindings for the meta characters. Instead, meta characters are regarded for purposes of key lookup as sequences of two characters, the first of which is (or whatever is currently the value of `meta-prefix-char'). Thus, the key `M-a' is internally represented as ` a', and its global binding is found at the slot for `a' in `esc-map' (*note Prefix Keys::). This conversion applies only to characters, not to function keys or other input events; thus, `M-' has nothing to do with ` '." It seems that a Meta character is treated as a sequence of two chars, the first of which is the value of `meta-prefix-char'. AFAIK, that's just the way it is. Someone will correct me if I misunderstand.