From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Karl Fogel Newsgroups: gmane.emacs.devel Subject: Re: [External] : Re: Concern about new binding. Date: Fri, 05 Feb 2021 17:38:33 -0600 Message-ID: <877dnmt79i.fsf@red-bean.com> References: <87zh0mmr54.fsf@gmail.com> <87y2g5smya.fsf@gmail.com> <4FF55FBF-573D-4A70-B3FC-682CA25B7ECB@gnu.org> <83lfc53whk.fsf@gnu.org> <20210203180142.seu6o3i6u7jhkyrh@Ergus> <83eehx3to5.fsf@gnu.org> <20210203221628.xgvvxjvh56gyswba@Ergus> <20210204070033.pm4ido4hq7a6twif@Ergus> <83sg6brhyg.fsf@gnu.org> <87a6sjpyqs.fsf@gnus.org> <838s83ra3q.fsf@gnu.org> <87mtwjocn7.fsf@gnus.org> <87wnvnmqhx.fsf@gnus.org> <87o8gz40ex.fsf@red-bean.com> <87czxfm0t8.fsf@gnus.jao.io> Reply-To: Karl Fogel Mime-Version: 1.0 Content-Type: text/plain; format=flowed Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36385"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: "Jose A. Ortega Ruiz" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Feb 06 00:39:55 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 1l8Ahe-0009Le-N2 for ged-emacs-devel@m.gmane-mx.org; Sat, 06 Feb 2021 00:39:54 +0100 Original-Received: from localhost ([::1]:45220 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l8Ahd-0001jf-NX for ged-emacs-devel@m.gmane-mx.org; Fri, 05 Feb 2021 18:39:53 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37454) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l8AgQ-0000o2-9c for emacs-devel@gnu.org; Fri, 05 Feb 2021 18:38:38 -0500 Original-Received: from sanpietro.red-bean.com ([45.79.25.59]:44086) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l8AgO-0004yJ-6g; Fri, 05 Feb 2021 18:38:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=red-bean.com; s=202005newsp; h=Content-Type:MIME-Version:Message-ID: In-Reply-To:Date:Reply-To:References:Subject:Cc:To:From:Sender: Content-Transfer-Encoding:Content-ID:Content-Description; bh=N769d90Bfa0om06M6OMemWudH9nY3PSMmjA6Lu2pMtg=; t=1612568315; x=1613777915; b=eWhsKZHfZ9TrHDvtQ04+6RU2XQ2ccReMiKcK5o7sDs5gr9YOaPO35iLI0YwLYTaB3pw8pO1pHe ac7jtmwZCWAovnIOsqjBriOvjzzVj7m47Qu8ASFSkk92kSl/AomIFrh7O/Ah/yv0gjQxhi7Y+ILVB BQnd5LjFh1/4fpZpcJ2q/yrBGJaUWzZQzz6SlY2scupH9M9euKwD3xlv9Jf9vryuy3qoKbrzWR5C6 SpwnKFLyML4w9StyOyqPi1nBFlq/A/p5nhKiKHHITBU/NRWa3Vb7nr46B0on1ikOXfR7luBCMwRNW jLpZrw8dzG+wYGuqb8uoZdqrmsn/PU+fAbdxw==; Original-Received: from 99-112-125-163.lightspeed.cicril.sbcglobal.net ([99.112.125.163]:33528 helo=floss) by sanpietro.red-bean.com with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l8AgM-0006uD-Ij; Fri, 05 Feb 2021 23:38:34 +0000 In-Reply-To: <87czxfm0t8.fsf@gnus.jao.io> (Jose A. Ortega Ruiz's message of "Fri, 05 Feb 2021 07:27:31 +0000") Received-SPF: pass client-ip=45.79.25.59; envelope-from=kfogel@red-bean.com; helo=sanpietro.red-bean.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-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:264030 Archived-At: On 05 Feb 2021, Jose A. Ortega Ruiz wrote: >I honestly don't understand this reasoning. Please bear with me. >Say today you have C-x g bound to a favourite command of yours. >How would emacs 28 binding it by default to revert-buffer >interfere with your emacs usage? Would that limit you in any >way? Chances are you won't even notice (if you're setting it >unconditionally in your init.el). By contrast, by our >prohibiting binding any subset of keys to anything at all, users >who don't (or can't) customize their emacses will never have any >use for those "free" bindings, and will never have a more >convenient way of accessing, say, revert-buffer. How are we >making user's lives more convenient by prohibiting to emacs >maintainers (or library writers, for that matter) to use any >currently unbound slot for a new binding? Ah, I can answer this. It has to do with protecting investment. When I custom-bind a command to a key, I am making an investment in finger memory. For example, I have `revert-buffer' on `C-c r' (because I use `revert-buffer' a lot), and I chose `C-c r' precisely because it was in the reserved space for user-chosen keybindings. That way I could be sure Emacs would never bind some other useful new function there. Imagine if Emacs *were* to bind some other useful new function there by default. Then I would face a hard choice: give up my finger memory for `revert-buffer' (by moving my binding for it to somewhere else), or custom-bind Emacs's new useful function to some key different than where Emacs wanted to put it. Neither option is attractive. The reason why the former option is bad is obvious. But the reason why the latter option is bad is maybe a little bit more subtle: Every such decision (to move a default Emacs keybinding to somewhere else) will cause me to diverge a bit further from default Emacs, and that divergence has overhead costs. For example, when teaching others or talking about Emacs with them, now my Emacs's default bindings are slightly different from theirs, which will cause confusion. Or sometimes I have to operate temporarily on a remote machine where my .emacs isn't available. Or I'm reading someone's post on emacs-devel and they talk about invoking a command by naming the keystroke they used, and I have to figure out what command they meant. Etc. So this is why I stopped overriding keybindings in Emacs's default space years ago. Now I (mostly) limit myself to the `C-c LETTER' universe, and in some cases made prefix maps there. I wouldn't want to conditionally bind a custom function to 'C-x g' even when the binding I am replacing is one I don't care about (imagine, for the sake of discussion, that I don't care about `revert-buffer'). First of all, divergence has inherent costs as explained above. Second, Emacs might some day replace the binding that I don't care about with one that I like, and then I would face the choice where if I want to make a new finger-memory in the default keyspace, I would have to change an existing finger-memory. Whereas if Emacs promises never to bind something I might care about on a key, then I'm free to make finger-memory investments in that key, secure in the knowledge that the only potential source of future hard choices will be me (well, me and maybe some third-party package maintainers), not Emacs itself. Does that explain better why I want Emacs to declare that it will never use certain convenient and currently-empty keybindings by default? Best regards, -Karl