Tags: patch Whenever Completion Preview mode shows a completion preview, it also activates keybindings for commands that interact with that preview, most notably TAB is bound to completion-preview-insert, which inserts the suggested completion. This is implemented via a minor mode completion-preview-active-mode whose keymap provides these bindings, and which is enabled when the preview is displayed. This all works well, except for when another minor mode, foo-mode, is enabled, whose keybindings conflict with these active preview bindings. If foo-mode is defined after completion-preview-active-mode, i.e. if foo.el is loaded after completion-preview.el, then foo-mode comes first in minor-mode-map-alist and takes precedence over the bindings in completion-preview-active-mode-map. This happens, for example, with eshell-cmpl-mode, a minor mode that is enabled by default in Eshell, which binds TAB to completion-at-point. So currently Completion Preview mode doesn't work as expected in Eshell: when you try to accept the suggested completion (with TAB), you get completion-at-point instead of completion-preview-insert. To fix this issue, we need to give the active completion preview bindings higher precedence than keymaps of minor modes that where defined after loading completion-preview.el. The patch below does that by using minor-mode-overriding-map-alist. Any thoughts?