1

This is about GNU Emacs 29.1 (build 8, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0):

The keybinding C-M-i, equivalent to <escape><tab> or to M-Tab (the latter often intercepted by OSs) is bound to complete-symbol in the global map, and very useful especially in org-mode.

This seems to be a built-in behaviour, because I'm not touching that keybinding in my init file, and the behaviour also appears starting Emacs with the -q option.

It turns out that Flyspell rebinds this to flyspell-auto-correct-word, which is also bound to C-.. This is very inconvenient, also because flyspell is called by many major modes in my configuration: I would have to redefine that keybinding in all of them.

How can I avoid this key rebinding by Flyspell? I checked some questions such as this, this, this, but they don't address this specific issue.

pglpm
  • 301
  • 1
  • 10
  • 1
    Doesflyspell do that if you start emacs with emacs -q? It does not in my case, so you are probably rebinding it in your init file(s). – NickD Jan 02 '24 at 16:11
  • Thanks for the suggestion, @NickD . I confirm that flyspell does that even starting emacs with emacs -q (then opening an org file and activating flyspell with M-x flyspell-mode). Indeed I'm not touching that keybinding anywhere in my init file. Edit: My Emacs is 29.1 (added this to the OP). – pglpm Jan 02 '24 at 18:14
  • 1
    Try also with emacs -Q: it may be that your distro is doing it in its site-init file. – NickD Jan 02 '24 at 18:23
  • @NickD Problem remains with -Q – but your answer solved it :) – pglpm Jan 02 '24 at 19:42

2 Answers2

2

Customize the variable flyspell-use-meta-tab to nil. C-h v flyspell-use-meta-tab says:


flyspell-use-meta-tab is a variable defined in ‘flyspell.el’.

Its value is nil Original value was t

Non-nil means that flyspell uses M-TAB to correct word.

You can customize this variable.

NickD
  • 29,717
  • 3
  • 27
  • 44
  • Thank you! Would never have thought such a custom variable existed. – pglpm Jan 02 '24 at 19:41
  • 1
    I must have customized it at some point, but I didn't know (or at least didn't remember) of its existence either: I looked at the flyspell code and found it. – NickD Jan 02 '24 at 19:50
0

All you have to do is add a line to your init file that binds the key to whatever function you prefer.

db48x
  • 17,977
  • 1
  • 22
  • 28
  • This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post. - From Review – Drew Jan 02 '24 at 19:44
  • Of course it answers the question. Directly setting the key binding that the user wants is the quickest and easiest way for them to get the key binding that they prefer. No research is needed, not even reading the documentation, the manual, the customization buffer, or the source code. – db48x Jan 03 '24 at 02:26