From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Arthur Miller Newsgroups: gmane.emacs.devel Subject: Re: transient Date: Tue, 19 May 2020 16:00:06 +0200 Message-ID: References: <5230692c-c665-a330-7a12-e59fa25d97dd@gmail.com> <70bb51fd-447d-928c-4d69-1c9673a44471@online.de> <871rnnvmdx.fsf@red-bean.com> <87pnb7sira.fsf@red-bean.com> <06bcddd4-6991-e4f7-e944-93de14af263d@yandex.ru> <87h7wjsd8o.fsf@red-bean.com> <20897f01-122d-7f91-eac2-70f5ad75796f@yandex.ru> <87d077qfmm.fsf@red-bean.com> <806193B0-1248-4522-83F1-21FA8206C5A8@traduction-libre.org> <87imgtlofi.fsf@fastmail.fm> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="87358"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Howard Melman , emacs-devel@gnu.org To: Drew Adams Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue May 19 16:00:52 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 1jb2nb-000Mbh-EN for ged-emacs-devel@m.gmane-mx.org; Tue, 19 May 2020 16:00:51 +0200 Original-Received: from localhost ([::1]:36712 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jb2na-0003Os-Fh for ged-emacs-devel@m.gmane-mx.org; Tue, 19 May 2020 10:00:50 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36578) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jb2my-0002g8-6h for emacs-devel@gnu.org; Tue, 19 May 2020 10:00:12 -0400 Original-Received: from mail-oln040092074083.outbound.protection.outlook.com ([40.92.74.83]:21409 helo=EUR04-DB3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jb2mw-0007l3-Bf for emacs-devel@gnu.org; Tue, 19 May 2020 10:00:11 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LwppFKqArkCH31JWZHOgeJHYz2ieEHTM8eTpa44J+SxRxiBWNpcGL4Qa5ZOy30O8wzElm59O7+MBevtt9wG4nh7z3t1LcAA/JhjcMcSh867h1i4IidUX6DVTPHKX8+offPv+e/h7OYQNGc8gS8WGnIaggTBRP8xM2I2K2mknvJWIgAT0VTRFO4CaZloZ/w9UswAgj+lTEt2OyMWzh5CRSUXXGw0fXNo/Im7Lzj+8mjyb3YUBo/o4gisbcsjHsN+cbWgyUhHAQtHJ2wPR5ME+9lYTokkXLvOdCy7JqjDaeyfT8JuNUa5SLoK4d/ZJhXV8kVGBg0FsojR2vXQFb429Nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kMYd5M+U3KVIF74DTnOPhSIEPS9NH1mZGggOUZzZmls=; b=VXVxtlXoghd+dKmuJrZmIvFS53U+qiOhEFWxegWRWg1pt3Ju4YDnzbFwwBGnYfOKQD6V6CPtMjGAl5qlMeHhAS+xldSi2tsnXhucHrnYvd2cZJc8PA4xRRUt0FHeP8NTaq4R4dqbzwF7FD1jRm38jLA/h4GzEe9kQjaglzPfdkdwY5qbx0BzxzCqW8o+SSJytmfIQVvD+yYqE0ToWqSwYe+ia+ghq97WnccpMTCd4gJs/j/Hr8VaQ4Ot52pUGYC91aj2lAkjB4lvYRWMjmId6W0NLlqe/HZyMEDN6ohjo0wAVHoi3NWXx001Yu0ERm04nMxxH+ttbXKMtNIzrmyIrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=live.com; dmarc=pass action=none header.from=live.com; dkim=pass header.d=live.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kMYd5M+U3KVIF74DTnOPhSIEPS9NH1mZGggOUZzZmls=; b=BH/OS6n2Co+oZ9ZOYWXuFdKXf8mD5bP8XOWA1es4Cktz7FqwTgsPoeJHccpUaUzeD131EXzxJoxd1oIbYM836pBmGUOFB99eYVi8chaRPFIG+bsVpVb1qq+Q54LgdT0X/5yHATbDrO9XF9PS5hO218eE3C0mGTcsHaqm3RcNIh+RcfZPWezDwwSCOhW+8ntDlMp6kPb/44jPM84N3nFimu8cJok2k+iDldsd28NRLx/4dfIjM+1PP/nADuy/oim76r70Hj5ywDn7HrAjw1FDptgmXMFsFWpafqLZcjUG9tiJwF2ONDZB2QgiFZW/8iMMswzTbaUVTAeeEz1JvkcC4g== Original-Received: from VI1EUR04FT007.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0e::45) by VI1EUR04HT108.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0e::82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.19; Tue, 19 May 2020 14:00:08 +0000 Original-Received: from VI1PR06MB4526.eurprd06.prod.outlook.com (2a01:111:e400:7e0e::40) by VI1EUR04FT007.mail.protection.outlook.com (2a01:111:e400:7e0e::229) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.19 via Frontend Transport; Tue, 19 May 2020 14:00:08 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:C812BF2813B2F6C911DA66706836BF9C438B01BA7D7F3B4DE51A5C743495CC42; UpperCasedChecksum:925450909E31E3F9C14E992956813CA4A13455DDE7DB8F59AB0807AB8EE7EC65; SizeAsReceived:8259; Count:48 Original-Received: from VI1PR06MB4526.eurprd06.prod.outlook.com ([fe80::49f0:2314:a959:bec5]) by VI1PR06MB4526.eurprd06.prod.outlook.com ([fe80::49f0:2314:a959:bec5%7]) with mapi id 15.20.3000.034; Tue, 19 May 2020 14:00:08 +0000 In-Reply-To: (Drew Adams's message of "Mon, 18 May 2020 22:38:12 -0700 (PDT)") X-ClientProxiedBy: AM6PR0502CA0053.eurprd05.prod.outlook.com (2603:10a6:20b:56::30) To VI1PR06MB4526.eurprd06.prod.outlook.com (2603:10a6:803:ac::17) X-Microsoft-Original-Message-ID: <87wo58ja8p.fsf@live.com> X-MS-Exchange-MessageSentRepresentingType: 1 Original-Received: from pascal.homepc (90.230.29.56) by AM6PR0502CA0053.eurprd05.prod.outlook.com (2603:10a6:20b:56::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.25 via Frontend Transport; Tue, 19 May 2020 14:00:07 +0000 X-Microsoft-Original-Message-ID: <87wo58ja8p.fsf@live.com> X-TMN: [h0mweJcdxKYqyD/f55qOcVoKe0zvOoK+] X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 1bb03646-eed4-41e1-531f-08d7fbfcf013 X-MS-TrafficTypeDiagnostic: VI1EUR04HT108: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7QbZ/PDCFnetTRUhdclenRiwk6/9kxe1EBEUWG/P4gW4nBwgkG13wBa4SRUdWLykEg/TFZjggknvsh+yk2BKsyDjLKwSbU50DardeE+oOXJ9zkSP9L33y5br03Jm9wVRz2c6YZ6Yr+Q3RVuc3qx8BnCOZZ9vOkOf+TMWYbXWqbi5OZMj+XXsB+qAc/CGJELtz+LeBXTZGjguJGp95cdgtg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:0; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR06MB4526.eurprd06.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:; DIR:OUT; SFP:1901; X-MS-Exchange-AntiSpam-MessageData: FafgasGjQtArxmDycIjDtQdLF9j9cNC0aDPahA9kAESr65cZOR62392d2aWxQtH5RuU3E1v9i3WoTI7dno4HWY0p1YWAfWabXQYlP4aUhyGy58/uGLIMBdevzf8sJOBOgVcI11LmJAHZUVGBUI5Nhg== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1bb03646-eed4-41e1-531f-08d7fbfcf013 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2020 14:00:08.0629 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1EUR04HT108 Received-SPF: pass client-ip=40.92.74.83; envelope-from=arthur.miller@live.com; helo=EUR04-DB3-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/19 10:00:08 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] 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, FREEMAIL_FROM=0.001, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN 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:250917 Archived-At: Drew Adams writes: >> >>> I like it very much because it helps see the rationale behind >> >>> keybinding. After a while you get to learn the bindings for the >> >>> commands you use the most and you can easily explore >> >>> new commands. >> >> ... which-key let's me explore existing bindings with >> no effort. Type C-x r and wait a second and see all >> the rectangle and register commands. It was great for >> learning the M-s and M-g keymaps when they were added. >> which-key has been very helpful for learning bindings... > > FWIW - > > Icicles key completion is similar, but there are > notable differences: > > 1. You can use it on-demand (as well as just > automatically) - complete only when you want > to, and without a delay. > > 2. Because of that you can also use it at top > level, not just after hitting a prefix key. > Use it to see what key bindings are available > in the current context (e.g. active modes). > > 3. Completion candidates have 2 parts: key and > command name: `KEY = COMMAND'. You can > match either or both. Prefix keys have `...' > instead of `COMMAND: `PREFIX-KEY = ...'. > > 4. Choosing a candidate with a COMMAND invokes > it. Choosing a prefix-key candidate changes > the set of candidates to its completions. > E.g., choosing `C-h = ...' shows candidates > such as `f = describe-function'. > > 5. You can filter the current matches, by typing > input that matches key or command names, or > both. You can filter multiple times (multiple > patterns). Remove your current pattern from > the minibuffer and type another one to see a > different set of matches at the same level > (same prefix key or top level). > > 6. When completing a prefix key, the first > candidate shown is `..', which you can choose > to go back up a level (completions above that > prefix key). Then you can go down another > prefix key - explore the entire key-sequence > forest. > > 7. That forest includes menus, as prefix-key > candidates (`menu-bar = ...'). So you can > explore menus in the same way. [*] > > 8. You can sort candidates in these ways: > > * local bindings first, then non-local, each > group in alphabetic order by key name > * prefix keys first, then non-prefix, again, > in key-name alphabetic order > * alphabetic order by command name > > You can cycle among those sort orders anytime, > using `C-,'. > > 9. Local bindings are highlighted differently > from non-local - two faces. Menus get two > other faces (local, non-local). > > 10. You can show full help (`C-h f' help) for > any candidate, anytime, without ending > completion. (Use `C-M-RET' on it.) > > 11. Being able to match minibuffer input against > key and command names means that, unlike the > approach of `which-key' and similar, when > completing a prefix key you don't just hit > keys that complete the key sequence, to > invoke its command. A workaround for that is > to hit `M-q' and then hit a key, to insert > its name in the minibuffer and then choose it. > E.g., `M-q C-M-f' inserts the text `C-M-f' in > the minibuffer. > _____ > > [*] Exploring menu-bar menus this way is one > step (menu level) at a time, the same as > exploring other key sequences. A better way > to explore menu-bar menus is to use library > La Carte. Then you can match menu items or > submenus directly, at any level. I.e., you > can type a single pattern that dives down > into the menu hierarchy - like file-name > completion. (But you can also navigate > stepwise.) I haven't used Icicles yet, but seen this list, maybe I should give it a try and see if I can use it instead of which-key. Can Icicles be used without any additional learning and as easy as which-key? Which-key is kind-of "just works", one installs it and it does what it does without additional effort on user side. Is "automatic" feature of Icicles in same manner? Regression, but I have to say, I am impressed Drew. With how much you have written. I went yesterday through your changelog for Dired+. Just reading the changelog and thinking though the extra features you have there took quite some time I have to say. What spontaneously to look usefull is marking/toggeling/untoggling files per region only. That seems like a usefull feature. Maybe you should try to get that part into standard Dired?