From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: John Yates Newsgroups: gmane.emacs.devel Subject: Re: Keybinding styles (was: [External] : Re: Gitlab Migration) Date: Sun, 5 Sep 2021 15:03:54 -0400 Message-ID: References: <87lf4dnk0z.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40553"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Tim Cross , Emacs developers To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Sep 05 21:47:25 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 1mMy6v-000ANZ-Pb for ged-emacs-devel@m.gmane-mx.org; Sun, 05 Sep 2021 21:47:25 +0200 Original-Received: from localhost ([::1]:45702 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mMy6u-0004zo-Ln for ged-emacs-devel@m.gmane-mx.org; Sun, 05 Sep 2021 15:47:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60866) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mMxR6-0003X3-Cd for emacs-devel@gnu.org; Sun, 05 Sep 2021 15:04:12 -0400 Original-Received: from mail-ej1-f47.google.com ([209.85.218.47]:44934) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mMxR2-0006ea-EI for emacs-devel@gnu.org; Sun, 05 Sep 2021 15:04:12 -0400 Original-Received: by mail-ej1-f47.google.com with SMTP id me10so8781128ejb.11 for ; Sun, 05 Sep 2021 12:04:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=IUXcnNYrmPDd8kJrFu0v7uvQm6gSU9ylW8XcsFVM09c=; b=ZCfXey1tiCAlSbfQwfedGeA0FsG7lfVrxNNOFwRMFmMtWilIemS026EMq7kYZfj91p /VfG+eObm/uWufGcVA26ktrNu/dJzo4uC43l11SZw3eMt0jw2T2X0kDaxx1an7AzqDwF hvXq4PUf+YJ/3Els11z182jwjMujtqp5X5I5qhHVLPtttwa5C9wzfIwFnBFdlfOLCyBI Bo43H4ly1mk6Vj/stqdN0cCHep06b9uJEry2fFyG5Lif1opJ4m8EPxaWxDizASWJT9bp VwLdSXE39VqQu0eYCo0Rsh3NZGuRLJ3IbZaFz1LqYsUdpDm1JmLf2yJhJtfq/bo+K3/g pA5g== X-Gm-Message-State: AOAM533oXfWvPfYCRDk47vFnBq/XOf8mtlMeB44nWOD+S4HbGelw83sW 2EmvZNrebeDIt1FfEIJ1+NR41fx1xOfofEWiRb8= X-Google-Smtp-Source: ABdhPJxilZ/6QPEw5ybzKu8BoT3JhrxrKwGZ9+9naParOv7JvlDCypAoEshh7L63qfxS5ennuFsnsgg5Wy95CZSeUd4= X-Received: by 2002:a17:907:1c1f:: with SMTP id nc31mr9786975ejc.371.1630868646149; Sun, 05 Sep 2021 12:04:06 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=209.85.218.47; envelope-from=john.yates.sheets@gmail.com; helo=mail-ej1-f47.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, 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:274032 Archived-At: On Sat, Sep 4, 2021 at 9:26 AM Stefan Monnier wrote: > > I keep wishing someone came up with a clever way for modes to specify > their key-bindings in such a way that Emacs can automatically derive from > it the keys to use "normally" as well as the keys to use in Evil or the > keys to use in god-mode, or the keys to use in this hypothetical new > `really-cua-mode`, ... > So as to finally address this long-term maintenance challenge. I would like to suggest that key bindings are the most contentious aspect of Emacs. We have numerous examples of efforts to offer alternative binding schemes. But it is the "default" bindings that engender all of the "Sturm und Drang". The keystrokes in these default bindings are distinguished in tutorials, package development, documentation, and casual communication over those in other binding schemes. Many regard those keystrokes as a fundamental Emacs feature. Yet, I believe, whatever one's view of vi/vim, none of us would deny that a user with evil-mode enabled is still truly using Emacs. What matters is that such a user is invoking elisp functions to work with Emacs buffers. To me, that is the essence of being an Emacs user. As a first step towards Stefan's wish, might I suggest that we consider what it would take to move to a world in which other binding schemes are considered fully equal peers of our current default bindings? Once we internalize that model, we can then work on abstractions to describe the relationships between the functions exposed by a given package (flat, sub-groups) and their relationship to overarching concepts like navigation. /john PS: For the record, I use the default bindings.