From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: New key binding syntax Date: Mon, 01 Nov 2021 23:54:17 -0400 Message-ID: References: <20211004081724.6281.11798@vcs0.savannah.gnu.org> <838ryqftlh.fsf@gnu.org> <87zgr487cj.fsf@gnus.org> <875ytrzg13.fsf@posteo.net> <87bl3jjdfw.fsf@gnus.org> <87lf2mwl68.fsf@posteo.net> <874k99f8ev.fsf@gnus.org> <87sfwtrttu.fsf@posteo.net> <87mtn1cdbh.fsf@gnus.org> <87o87hrte4.fsf@posteo.net> <878rylccyi.fsf@gnus.org> <87fssssz57.fsf@posteo.net> <87v91oc49k.fsf@gnus.org> <877de2a746.fsf@gnus.org> <87lf2d5obc.fsf@gnus.org> <87ee82r8p0.fsf@gnus.org> <87v91dnsxg.fsf@gnus.org> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3269"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Nov 02 04:56:43 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mhkug-0000ag-TF for ged-emacs-devel@m.gmane-mx.org; Tue, 02 Nov 2021 04:56:43 +0100 Original-Received: from localhost ([::1]:52710 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhkue-00043j-Ue for ged-emacs-devel@m.gmane-mx.org; Mon, 01 Nov 2021 23:56:40 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhksM-0002hG-AY for emacs-devel@gnu.org; Mon, 01 Nov 2021 23:54:18 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:53898) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhksM-00056f-1k for emacs-devel@gnu.org; Mon, 01 Nov 2021 23:54:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:to:From: mime-version; bh=iwl0qL7/RGXMsEwLuNcss9cuhML6zrY0yaareDy/1IA=; b=IIncB1yhJxF6 +OIEnBllNxV4dJRcayMpyFtiM0RNkus7DHJeDQCRyw84PUr3lzpC+u0IOeiw/TRde+aprXMxPOgfj 3NsceCl7SE6mgTzNTPffm59AevgamCUG1eaaVZAcXV9hrKb8q7azq3qqbDoz2YQHWzG+1bZITA5Js lGMZeDTETjqwH6fiUSm9vCN887aMMcXUCYgiKlyilmrIXENis6MHIlkPOl/EMnrzEfle2eUjTyDKT s7D8wRHZPbgCbBBReZqaTVpE6kj3qQIK+BAMJpRfbigEcHo7soFlzUHqM0OzS9bygxzr7e4j9bS9P P2f/EtpDIC25nVMffRhbUg==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1mhksL-0003ZX-LS; Mon, 01 Nov 2021 23:54:17 -0400 In-Reply-To: <87v91dnsxg.fsf@gnus.org> (message from Lars Ingebrigtsen on Sun, 31 Oct 2021 15:57:15 +0100) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:278462 Archived-At: [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Have a look at the kbd-valid-p doc string on the current trunk for a > definition. I've included that text below, because now is the time for people to look at and comment on it. Should the syntax Emacs adopts for the next 20 years be this one? This one with some changes? Any other proposal? If we use this syntax, the text we use to define it in the Emacs Lisp Ref Manual should cover valid cases not mentioned in this text. We don't use them in normal Emacs bindings, but they are valid so they should be documented. ====================================================================== Say whether KEYS is a valid `kbd' sequence. A `kbd' sequence is a string consisting of one and more key strokes. The key strokes are separated by a space character. Each key stroke is either a single character, or the name of an event, surrounded by angle brackets. In addition, any key stroke may be preceded by one or more modifier keys. Finally, a limited number of characters have a special shorthand syntax. Here's some example key sequences. \"f\" (the key 'f') \"S o m\" (a three key sequence of the keys 'S', 'o' and 'm') \"C-c o\" (a two key sequence of the keys 'c' with the control modifier and then the key 'o') \"H-\" (the key named \"left\" with the hyper modifier) \"M-RET\" (the \"return\" key with a meta modifier) \"C-M-\" (the \"space\" key with both the control and meta modifiers) These are the characters that have shorthand syntax: NUL, RET, TAB, LFD, ESC, SPC, DEL. Modifiers have to be specified in this order: A-C-H-M-S-s which is Alt-Control-Hyper-Meta-Shift-super -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)