From: "Barton, Mark" <Mark.Barton@disney.com>
To: Daniel Mendler <firstname.lastname@example.org>
Cc: "email@example.com" <firstname.lastname@example.org>,
Stefan Monnier <email@example.com>
Subject: Re: org-mode-map binds [tab]
Date: Fri, 9 Jul 2021 01:39:38 +0000 [thread overview]
Message-ID: <B8262082-2A6C-460A-8C42-48266AD51868@disney.com> (raw)
With Emacs compiled from master, after Nicolas Goaziou's fix to remove the <tab> binding, my tab key was no longer bound to org-cycle, but instead to outline-cycle from outline.el
If I comment out line 185 in outline.el then TAB will bind to org-cycle.
Does outline.el need to be fixed too?
——snippet from outline.el
(let ((map (make-sparse-keymap)))
(let ((tab-binding `(menu-item
;; Only takes effect if point is on a heading.
:filter ,(lambda (cmd)
(when (outline-on-heading-p) cmd)))))
(define-key map [tab] tab-binding)
(define-key map (kbd "TAB") tab-binding)
(define-key map (kbd "<backtab>") #'outline-cycle-buffer))
"Keymap used by `outline-mode-map' and `outline-minor-mode-cycle'.")
I don’t see outline as a minor mode listed when I use C-h m while in an org file expecting org-cycle.
> On Jun 27, 2021, at 8:34 AM, Daniel Mendler <firstname.lastname@example.org> wrote:
> `org-mode-map` binds `[tab]` which is unnecessary and harmful, since it
> takes precendence over bindings of TAB even in keymaps with higher
> Emacs : GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version
> 3.24.5, cairo version 1.16.0)
> of 2021-02-09, modified by Debian
> Package: Org mode version 9.4.6 (9.4.6-gab9f2a @
> I've observed this problem with my GNU ELPA package Corfu, which
> installs a keymap with higher precedence than org-mode. In order to
> override Org, it also has to bind [tab], which is undesired.
> On 6/27/21 11:11 AM, Daniel Mendler wrote:
>> On 6/26/21 4:02 PM, Stefan Monnier wrote:
>>>> + (define-key map [tab] #'corfu-complete)
>>> Please avoid binding `tab`: the `tab` event (only generated under GUIs)
>>> is supposed to be remapped to the TAB char-event (aka `C-i`) and this is
>>> what you should bind to if you want your binding to work both under ttys
>>> and GUIs.
>>> More importantly, if you bind to `tab` than this binding will take
>>> precedence over all other bindings to TAB, even those in keymaps that
>>> have higher precedence.
>>> The same holds for `return` vs RET, and `escape` vs ESC.
>> Hello Stefan,
>> I am aware of the unfortunate implications of these bindings.
>> Originally I avoided these bindings for the exact reasons you mention
>> and I hoped I could do without those (only binding RET/TAB and
>> remappings). However I have to use these keys since Org-mode seems to
>> override these keys too. Otherwise my keymap will not take precedence
>> over the Org-mode keymap.
next prev parent reply other threads:[~2021-07-11 12:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <email@example.com>
[not found] ` <20210626095707.B514720D0A@vcs0.savannah.gnu.org>
[not found] ` <firstname.lastname@example.org>
[not found] ` <email@example.com>
2021-06-27 15:34 ` org-mode-map binds [tab] Daniel Mendler
2021-07-01 10:17 ` Nicolas Goaziou
2021-07-09 1:39 ` Barton, Mark [this message]
2021-07-09 3:01 ` Stefan Monnier
2021-06-27 15:37 ` Bug: org-mode-map binds tab [9.4.6 (9.4.6-gab9f2a @ /home/user/.config/emacs/elpa/org-9.4.6/)] Daniel Mendler
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).