From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: Request for pointers and advice: displaying several buffers inside a single window Date: Sun, 12 Apr 2020 22:23:15 -0700 (PDT) Message-ID: References: <83a73swwd7.fsf@gnu.org> <87wo6nxsjz.fsf@localhost> <83d08fmgul.fsf@gnu.org> <87tv1rxmgc.fsf@localhost> <83a73jmcyo.fsf@gnu.org> <87pncfxk4m.fsf@localhost> <87mu7jxi64.fsf@localhost> <87eesuxwzt.fsf@localhost> <2f47e193-63d4-4ffc-9bd1-5cfcb0da915e@default> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="64861"; mail-complaints-to="usenet@ciao.gmane.io" Cc: casouri@gmail.com, dim1212k@gmail.com, yantar92@gmail.com, emacs-devel@gnu.org, adam@alphapapa.net, eliz@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Apr 13 07:24:08 2020 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 1jNrZo-000GjW-Eb for ged-emacs-devel@m.gmane-mx.org; Mon, 13 Apr 2020 07:24:08 +0200 Original-Received: from localhost ([::1]:40434 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jNrZn-00069z-FM for ged-emacs-devel@m.gmane-mx.org; Mon, 13 Apr 2020 01:24:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55044) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jNrZ9-0005iR-6v for emacs-devel@gnu.org; Mon, 13 Apr 2020 01:23:28 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jNrZ7-0001yY-NM for emacs-devel@gnu.org; Mon, 13 Apr 2020 01:23:26 -0400 Original-Received: from userp2130.oracle.com ([156.151.31.86]:41756) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jNrZ5-0001xZ-W7; Mon, 13 Apr 2020 01:23:24 -0400 Original-Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 03D5J8gB150142; Mon, 13 Apr 2020 05:23:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : cc : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=ldVB4kf+ExmMRk8DivPZX4f0GdL7DEic6e2BUpnbcaA=; b=n7fMDs8k/F5oWeuoPDC5RLkqr0iNCodmN3ow7rKKYt5tWbaDTHCBnvrJazIklsvqrF7V hQZpHC2clo0ANXMNB7i+0Z8NDnxUxPqrNn94XKS1XT/rAhiWbf84+f1j/EwlsFC781zE +Chkh8kaPzKtGBp0KVoTk9v0afARP8R7JDaesWrMWPch7sCAKcLoN6oL6MADoWeOrzcY ne44phMst+1Ob6/d8qjAL2AcOnsWqb/3iSexEmATKQfhXKHAZd5zqOVpBpZrg+pG8gs3 d7HKrdri3FIyu3DUVUAHdYNCAbzDPrDQGR5BHAtjq28cIpUzlyI3alikzfzZnIwQ2yKy aQ== Original-Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2130.oracle.com with ESMTP id 30b5aqvfyk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Apr 2020 05:23:18 +0000 Original-Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 03D5GqjW173157; Mon, 13 Apr 2020 05:23:18 GMT Original-Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userp3020.oracle.com with ESMTP id 30bqkw1sc2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Apr 2020 05:23:18 +0000 Original-Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 03D5NGKR026591; Mon, 13 Apr 2020 05:23:16 GMT In-Reply-To: X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4966.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9589 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 adultscore=0 mlxscore=0 phishscore=0 malwarescore=0 spamscore=0 suspectscore=1 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004130047 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9589 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 phishscore=0 spamscore=0 mlxlogscore=999 suspectscore=1 adultscore=0 mlxscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004130047 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.86 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:246882 Archived-At: >> You don't need to memorize anything. And certainly >> not in order to be able to use the feature. The >> predefined keys are just for convenience. >=20 >> And you can bind any of the commands to whatever >> keys you like. >=20 > I think we are miscommunicating. All Emacs key bindings are "just for > convenience" and each user can rebind them. Notwithstanding that, it > is important for default bindings to be convenient. C-x n M-=3D v is > not going to be easy to remember. If a command is worth giving a key > binding to, can someone propose a more convenient default binding? I'm the one who decided that the commands are worth giving key bindings to. I believe it's convenient enough to put all zone keys on `narrow-map', and I believe it's convenient enough to put all toggle commands for zones on their own keymap, and to put that on `narrow-map'. Putting the toggle keys on their own map makes it easy for someone to move them, together, to another prefix key. Putting all zone keys on an _existing_ prefix key means saving another prefix key for some other use. `narrow-map' makes sense for that, because it's about multiple different buffer areas: ~zones. Where we may be miscommunicating is perhaps that it's up to me to decide which keys I think best to predefine for zones.el and isearch-prop.el. I'm quite open to user feedback, including about predefined key bindings. But I'm not convinced by the argument that `C-x n M-=3D' shouldn't be used as a default prefix key because it's not convenient. My priorities here are not just for quick keys or individually memorable keys. I expect users to pick their own keys for that, if they like, based on their use. My priorities for this are instead: 1. Group all zone keys on a prefix key. 2. Don't waste a new prefix key - use existing key. 2. Use `C-x n', because: (a) it's relevant - logical association between zones and buffer restrictions (b) it doesn't already have many keys on it 3. Group the toggle keys on their own prefix key (which is on `C-x n'). #2 and #3 do help memory, but for key _groups_, not for individual keys. For individual toggle keys there are also mnemonics: `v', `V' for visibility toggles `~' ("not") for complementing the domain `d' for dimming Similarly for the other zone keys, these mnemonics: `#' for selecting zones by ID number `a', `A' for adding zones `c', `C' for cloning zones `C-d' for deleting zones from the current zones set `D' for deleting text-dimming `h', `H' for highlighting zones `l', `L' for adding/setting zones from (high)lighting `P' for property-putting on zones `r', `R' for adding/setting zones from regexp matches `s' for selecting zones as the region `u' for uniting (coalescing) zones `v' for changing the current zones variable And these, which follow the usual search keys: `C-s', `C-M-s', `C-r', `C-M-r' for search `M-%', `C-M-%' for query-replace The one key that's not really mnemonic, but which gets used a lot, is `x', which cycles among narrowings (`C-x n x x x...). I would have picked `n' for that, which _is_ mnemonic, but that's already `narrow-to-region' (not especially mnemonic within the set of narrowing keys, but it was perhaps the first such). I picked `D' for dimming because `d' was already `narrow-to-defun'. I picked `P' for property-putting because `p' was already `narrow-to-page'.