From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Suggested experimental test Date: Sat, 27 Mar 2021 01:13:39 +0200 Message-ID: <2565dbfa-430e-3c00-f5f2-e4822d891910@yandex.ru> References: <831ba60af0cbfdd95686@heytings.org> <87mtuxj8ue.fsf@gnus.org> <9088e12cb3de3d30abf1@heytings.org> <8735wnjsum.fsf@gnus.org> <83sg4n9jei.fsf@gnu.org> <87y2efhx3e.fsf@gnus.org> <838s6f9g5d.fsf@gnu.org> <87y2efgg3w.fsf@gnus.org> <878s6fgdzu.fsf@gnus.org> <19c1ec9e-a97f-a8ab-b966-edadbc299c39@yandex.ru> <7226c389-ebd7-29fd-23b8-c2dbfbf0c1a0@yandex.ru> <6e619bd9-91cb-85ad-63e6-b46e12adcdbf@yandex.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39476"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 Cc: Lars Ingebrigtsen , Eli Zaretskii , Gregory Heytings , Emacs developers To: Stefan Kangas , Stefan Monnier , Yuri Khan Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Mar 27 00:14:58 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 1lPvfO-000A9p-8Q for ged-emacs-devel@m.gmane-mx.org; Sat, 27 Mar 2021 00:14:58 +0100 Original-Received: from localhost ([::1]:53984 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lPvfN-0004L6-93 for ged-emacs-devel@m.gmane-mx.org; Fri, 26 Mar 2021 19:14:57 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41112) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lPveD-0003PT-HJ for emacs-devel@gnu.org; Fri, 26 Mar 2021 19:13:47 -0400 Original-Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:46011) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lPveB-0003TM-QC; Fri, 26 Mar 2021 19:13:45 -0400 Original-Received: by mail-wm1-x330.google.com with SMTP id r10-20020a05600c35cab029010c946c95easo3756178wmq.4; Fri, 26 Mar 2021 16:13:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=z1VQWGqPCqyvEisxx4+LsweCWBdTtvEEK3MPBA90A6E=; b=ZJgmi2/mvUZ8Ns6qHLWULbKNSfsYIPTTsz9t9P2yuo7J5lDNXbiyDX4oKwQA7yX/h8 IK/au8KJ6cgFctNbNzq6rRHYfst3AQtAULPkc2V/YouH/VWKKGEQLHqldyNki6Vg4wxS smeDFva1O+vz+yC32Qk0tvUhGkfcv22+FdThlSJA2m6jvQmAecO3XGftqC9Y1W4+X62g +Ai34lf1BKsWAsH6ugf6LYc5vGCuoHnomWNNPVBrfKN3xnoTL3NCEfIFuN7hCXsHSFth tvYJpj15K7tK6AFeUu7IHGRV2jMk67CyId+7jfKJST6q0K5I5a0f6YkIN9ebQ93lwdKc dJ8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=z1VQWGqPCqyvEisxx4+LsweCWBdTtvEEK3MPBA90A6E=; b=Esdjrt69Hu5Um6YQIH/YAr/cvUIE46Q1ubWdg4xb7axmam/hsdNsJ4oH9LTJB8/h9b mrBhRGn8jsWSlfkq9dP49ov5X+r+3NTOqkjyJXI5i0Y/HQwWgfYtKWBA4ltA95TuhDZ8 StcSw/sv2TIOQnlOvD6Yn5nL5F9U44mbDIQT9ZMq+Pt/+ap53aOHYjMS9GE+LG9aURtP ULdRftrOOdW+Q4OE0E91fZE3bjy4v6xD3xZsbUlq7PNjhqj79CkdoOnR/Uoed/Ofs3zf Qhi+cPZceZ9RjJ9VdhORpTIXM6Pej7vyxm4rhZ4zyAkMUR9RiKsJ0knZcx3JABm57FVF qV/Q== X-Gm-Message-State: AOAM533FqWyyd0ktVVJSvspOzVa8nR0G7qRIP3wMv4dIJ7lwBMeHRKyB QXedMOjZd8s8f6XdBCEYdxM+LfVrGsQ= X-Google-Smtp-Source: ABdhPJyBI+WjhbJT3/DVgRPqeyELCchgJ4oj9yq5vIWn5ZzIzfsdrilj/j2O0VCE5a9UDodoSjyvbQ== X-Received: by 2002:a1c:f20f:: with SMTP id s15mr15211137wmc.61.1616800421689; Fri, 26 Mar 2021 16:13:41 -0700 (PDT) Original-Received: from [192.168.0.6] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id 1sm19724593wmj.0.2021.03.26.16.13.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 26 Mar 2021 16:13:40 -0700 (PDT) In-Reply-To: Content-Language: en-US Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=raaahh@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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:267090 Archived-At: On 26.03.2021 12:34, Stefan Kangas wrote: > Dmitry Gutov writes: > >> On 25.03.2021 23:11, Stefan Monnier wrote: >>> E.g. if it's bound to `C-c` it's fairly convenient to have bindings >>> within it of the form `C-`, but if it's bound to `c` instead >>> (assuming a a modal key-binding scheme like vi) then using `C-` >>> within it is much less convenient. >> >> Interesting example. I wanted to say nobody will bind it to 'c', but >> some people might decide to bind it to M-c instead. >> >> Here's a thought: let's invent an extension of the kbd syntax which will >> allow us to specify a modifier indirectly based on an entry in >> key-translation-map. Like: >> >> (kbd " -c") >> >> Even more backward-incompatible, but okay. But what to do if >> has no modifiers, like in Yuri's example? >> Translate '-c' to just 'c'? What happens to any >> other simple 'c' entry in that keymap? Do we "flip" it to, say, 'C-c'? > > How about something like: > > (mode-kbd "k") ; C-c k > (mode-kbd "mod k") ; C-c C-k > (mode-kbd "mod2 k") ; C-c M-k > (mode-kbd "mod3 k") ; C-c S-k > > Then mod, mod2 and mod3 could be set to use whatever modifier you want. > And mode-kbd would use the correct prefix. This looks nice and flexible, but probably doesn't address the essence of Stefan's complaint. Example: If mode-specific-modifier is 'C-c', 'C-c C-k' seems like an easy-to-hit sequence, suitable for a frequently-used command. If mode-specific-modifier is or , ' C-k' is less easy to hit than ' k', for example, and the latter binding might be preferable. But the package author already has to make a choice between (mode-kbd "k") and (mode-kbd "mod k") for a given command without knowing mode-specific-modifier in advance. > (BTW, it would be even nicer if we could evaluate such a form on > key lookup.) Yuri mentioned key-translation-map already. Perhaps it or a similar new mechanism could be employed.