From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Zhu Zihao Newsgroups: gmane.emacs.bugs Subject: bug#44328: 27.1; [PATCH] Add expand-abbrev-maybe condition key binding Date: Tue, 03 Nov 2020 12:40:52 +0800 Message-ID: <86eelbaw8b.fsf@163.com> References: <86h7qbdbsv.fsf@163.com> <87v9ep9msu.fsf@gnus.org> <33826ad9.44e2.1758779a4c1.Coremail.all_but_last@163.com> <87r1pb6akn.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3026"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.4.13; emacs 27.1 Cc: 44328@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Nov 03 05:42:19 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1kZo9B-0000f1-NS for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 03 Nov 2020 05:42:17 +0100 Original-Received: from localhost ([::1]:46420 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZo9A-00013U-Pi for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 02 Nov 2020 23:42:16 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38030) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZo8v-00013K-Uz for bug-gnu-emacs@gnu.org; Mon, 02 Nov 2020 23:42:01 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:59812) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kZo8v-0001P3-Kx for bug-gnu-emacs@gnu.org; Mon, 02 Nov 2020 23:42:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kZo8v-0001F8-J6 for bug-gnu-emacs@gnu.org; Mon, 02 Nov 2020 23:42:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Zhu Zihao Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 03 Nov 2020 04:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44328 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 44328-submit@debbugs.gnu.org id=B44328.16043784714719 (code B ref 44328); Tue, 03 Nov 2020 04:42:01 +0000 Original-Received: (at 44328) by debbugs.gnu.org; 3 Nov 2020 04:41:11 +0000 Original-Received: from localhost ([127.0.0.1]:43125 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kZo87-0001E3-5i for submit@debbugs.gnu.org; Mon, 02 Nov 2020 23:41:11 -0500 Original-Received: from mail-m971.mail.163.com ([123.126.97.1]:55756) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kZo84-0001Ds-9a for 44328@debbugs.gnu.org; Mon, 02 Nov 2020 23:41:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version; bh=QWCvi NkUlSlioRgaczERHF7F9UZoQAOq2MILxU036u8=; b=SmqO81mJDiBznNkab8i2m 0lsm5RK9D9CJf441+62xqGCsN98s+SceXJqcG45SsE2dlQpzB837FLi896D0eFBR ivL8Xc1PkQh3Isc2gGyqUnMWOxjzKMuqgwJBN85oRLCoEKpJE86sbzz/0x+X7Tfl laQCjygMu2LkPT5WVFe81g= Original-Received: from asus-laptop (unknown [112.93.142.125]) by smtp1 (Coremail) with SMTP id GdxpCgBnb9Na36Bf8UkBAA--.12S2; Tue, 03 Nov 2020 12:41:02 +0800 (CST) In-reply-to: <87r1pb6akn.fsf@gnus.org> X-CM-TRANSID: GdxpCgBnb9Na36Bf8UkBAA--.12S2 X-Coremail-Antispam: 1Uf129KBjvJXoW7uF4xKry3Jr4kCw48ZryDtrb_yoW8WrWDpa yF9ryrtrW0qFyUJa1kKF1kZrWIq397tFWYqa1DXrWxua13J3yI93y3tFs3ua47Ww4Iva4a qF4DC3s29a4kCFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07Uv0PDUUUUU= X-Originating-IP: [112.93.142.125] X-CM-SenderInfo: pdoosuxxwbztlvw6il2tof0z/xtbCChDRr12MYlryKwAAsU X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:192587 Archived-At: --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I'm afraid that a normal command can't do this. Please see following example. ``` (defvar my-override-map (make-sparse-keymap)) (define-minor-mode my-keymap-override-mode "" :keymap my-override-map) (defconst expand-abbrev-maybe '(menu-item "" expand-abbrev :filter (lambda (cmd) (and (abbrev--before-point) cmd)))) (define-key my-override-map (kbd "C-'") expand-abbrev-maybe) (global-set-key (kbd "C-'") #'eww) (define-abbrev emacs-lisp-mode-abbrev-table "lb" ";; -*- lexical-binding: t= -*-") ``` I first create a minor mode for keymap overriding, then set the global key C-' to eww. And bind expand-abbrev-maybe to the keymap of minor mode my-keymap-override-mode. And I define a abbrev "lb" in Elisp mode. then enable minor mode my-override-map in Elisp mode. If my cursor is following "lb"(like "lb|"), it will expand the abbrev, otherwise it will execute eww. Now I change the key binding of C-' in global map(change to gnus). the behaviour of keybinding in my-override-map will become "Expand abbrev if possible otherwise execute gnus"=20 Lars Ingebrigtsen writes: > "Zhu Zihao" writes: > >> Actually, it's a menu-item definition, described in >> https://www.gnu.org/software/emacs/manual/html_node/elisp/Extended-Menu-= Items.html >> >> It can be bound to a keymap and use it like key bindings, it also suppor= t some >> dynamic features which normal keybinding can't do, according to manual. > > OK, but a normal command would surely make more sense here? =2D-=20 Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp Zihao --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFJBAEBCAAzFiEE7NCVzXX6efyusptG1SOVn+xGFqYFAl+g31YVHGFsbF9idXRf bGFzdEAxNjMuY29tAAoJENUjlZ/sRhamMOAIAImx3YQsh1BpKZ6wj4XdK4/z7Fv7 9UZCwRN864FN26RkztdXpPWJImCsdlBPYwgVO3hlKacvC0ip8yr46Jnmb2YxJGo0 08TNStpQpcqHX8khdcz6iUC1GXzNjUFRkWGqm7u2j0R0AnJCtHeYsGexmWdlG3Qy AGzZfL/tcR5W6Tj+kBfGTE2umAACOi1mVUI6LDOTM86i65KfNSqc7JPIheZL/2qY ugRjtWecT43sa9RkFcExGlQqyW6Uqp9AReKpsabEm+LyvPtYNAccYVFjziiusPBz /WuqpcrA40+CUdyH69kr2wvQ8OlrlF+xZKp6AxQ8hx8SbgKd//h4LomnD8k= =rh+/ -----END PGP SIGNATURE----- --=-=-=--