emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Some further ideas for Isearch


From: Augusto Stoffel
Subject: Some further ideas for Isearch
Date: Sun, 25 Apr 2021 10:20:11 +0200

Here are some further ideas for Isearch, partially inspired by the
alternative buffer search packages out there:

Future history
--------------

Pressing `C-s M-n M-n ...' could present a few useful search
candidates, controlled for instance by the
`isearch-forward-thing-at-point' variable.  This would be more
flexible and more mnemonic than the recently introduced
`isearch-forward-thing-at-point' command.

Resume canceled searches
------------------------

`C-s C-s' recovers the last history element, so it's more or less
equivalent to `C-s M-p'.  It would be nice to have the ability to
resume a canceled search, i.e., make `C-s C-s' look into
`isearch-cmds' instead.

Fuzzy search
------------

By this I mean a search mode where `search-whitespace-regexp' is set
to ".*?".

Implementing this wouldn't be completely trivial because, unlike case
sensitivity, the whitespace laxness settings are not local to each
Isearch session.  (As a quick check, note that `M-s c' changes
case-sensitivity for the current search only, but `M-s SPC' changes
whitespace laxness for future searches as well.)

The whitespace regexp should also be saved as a property in the
search-ring elements.

Whole words vs lax whitespace
-----------------------------

The word search mode (M-s w) does two things at once: it wraps the
search string around "\\< ... \\>" and treats whitespace as "\\W+".  It
would be nice to make these two aspects orthogonal.

Sometimes, one might want to search whole words with literal spaces.
Much more often, however, one might want "\\W+" whitespace but not the
whole-word restriction.

I'm not sure what a good UI would be, but one idea is to make `M-s SPC'
cycle between a few useful whitespace regexps (e.g., nil, "\\s-+",
"\\W+" and ".*?").



reply via email to

[Prev in Thread] Current Thread [Next in Thread]