From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: Repeat lambda Date: Tue, 13 Apr 2021 22:35:25 +0300 Organization: LINKOV.NET Message-ID: <87fszuov1u.fsf@mail.linkov.net> References: <87o8fhekvx.fsf@mail.linkov.net> <385DDC1B-F508-4165-87FD-FFE2461348A6@kuaishou.com> <87ft0nyrfb.fsf@mail.linkov.net> <87blb969vc.fsf_-_@mail.linkov.net> <8FE23CF4-90D9-4633-9CCF-B1FDD24DABCE@kuaishou.com> <87mtul7tcs.fsf@mail.linkov.net> <87tuokjvf3.fsf@mail.linkov.net> <20210411234042.mls4zqid47zwlty3@Ergus> <87mtu3wjjf.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12400"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) Cc: Zhiwei Chen , emacs-devel To: Ergus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Apr 13 21:46:08 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 1lWOzA-00039A-60 for ged-emacs-devel@m.gmane-mx.org; Tue, 13 Apr 2021 21:46:08 +0200 Original-Received: from localhost ([::1]:53674 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lWOz9-0000ag-6o for ged-emacs-devel@m.gmane-mx.org; Tue, 13 Apr 2021 15:46:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33710) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lWOyO-0008Ie-9c for emacs-devel@gnu.org; Tue, 13 Apr 2021 15:45:20 -0400 Original-Received: from relay8-d.mail.gandi.net ([217.70.183.201]:49269) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lWOyK-00068W-RA for emacs-devel@gnu.org; Tue, 13 Apr 2021 15:45:19 -0400 X-Originating-IP: 91.129.96.157 Original-Received: from mail.gandi.net (m91-129-96-157.cust.tele2.ee [91.129.96.157]) (Authenticated sender: juri@linkov.net) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id E550E1BF20A; Tue, 13 Apr 2021 19:45:12 +0000 (UTC) In-Reply-To: <87mtu3wjjf.fsf@mail.linkov.net> (Juri Linkov's message of "Mon, 12 Apr 2021 19:32:20 +0300") Received-SPF: pass client-ip=217.70.183.201; envelope-from=juri@linkov.net; helo=relay8-d.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:268009 Archived-At: >> I see that You bind `C-x u` as a repeat command, but in my case I have >> undo-only. The repeat transient map still uses the normal undo BUT maybe >> there is a "simple" method (in the user config of course) to make u u u >> use the undo-only and (as a plus) make r r r to do undo-redo? >> >> I suppose that this only needs some define-key like below? Since there is no key to initiate an undo-redo sequence, re the comment in bindings.el: ;; Richard said that we should not use C-x and I have ;; no idea whereas to bind it. Any suggestion welcome. -stef ;; (define-key ctl-x-map "U" 'undo-only) Maybe 'C-x u u' could start such key sequence with the command 'undo', then 'r' could switch to a different keymap where 'r' is bound to 'undo-redo' and 'u' to 'undo-only'. Perhaps such heuristics makes sense that once the user typed 'r', the next 'u' should do 'undo-only'? #+begin_src emacs-lisp (defvar undo-repeat-map (let ((map (make-sparse-keymap))) (define-key map "u" 'undo) (define-key map "r" 'undo-redo) map) "Keymap to repeat undo key sequences `C-x u u'. Used in `repeat-mode'.") (put 'undo 'repeat-map 'undo-repeat-map) (defvar undo-redo-repeat-map (let ((map (make-sparse-keymap))) (define-key map "r" 'undo-redo) (define-key map "u" 'undo-only) map) "Keymap to repeat undo-redo key sequences. Used in `repeat-mode'.") (put 'undo-redo 'repeat-map 'undo-redo-repeat-map) (put 'undo-only 'repeat-map 'undo-redo-repeat-map) #+end_src