I've attached a draft implementation of a minibuffer-controlled mode for Isearch, as described for instance in https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00447.html To enable the feature, set `isearch-from-minibuffer' to t. The basic trade-off is that this makes it easier to edit the search string, and harder to quit the search. It also drops some of the eccentricities of regular Isearch. For instance, DEL deletes and C-g quits. I'm sharing this preliminary version because two important questions can already be answered: - Does the approach taken here seem sufficiently robust? Note in particular the `with-isearch-window' macro, which is now needed around several functions, as well as the somewhat hacky `run-with-idle-timer' call inside the `isearch-mode' function. - Are the slightly backwards incompatible keybinding changes in `isearch-edit-string' acceptable? If any of these answers is no, then I would provide a package for the same feature. But I think the feature is interesting enough to be built in isearch.el. Moreover, it would benefit from being official because many third-party extensions to Isearch will need to take into account the possibility that the search is being controlled remotely from a minibuffer. Some further remarks: - The minibuffer-controlled mode is supposed to depend on the proposed `isearch-buffer-local' feature. This will make the hack used to deactivate the `overriding-terminal-local-map' unnecessary. - It seems necessary to let-bind `inhibit-redisplay' to nil in `with-isearch-window' in order to avoid flicker in the cursor. This seems related to the recent thread "Temporarily select-window, without updating mode-line face and cursor fill?" in this list. Any better solutions? - I don't like the `with-isearch-window-quitting-edit' macro, but I don't see a different way of achieving the necessary effect. - I don't use/know of all Isearch features, so let me know if you spot some incompatibility. What do you think?