On Sun, Apr 29, 2012 at 16:46, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>    (defun isearch-cycle-search-invisible ()
>      "Cycle the value of `search-invisible'.
>    Bound to \\<isearch-mode-map>\\[isearch-cycle-search-invisible] in `isearch'."
>      (interactive)
>      (setq search-invisible
>            (case search-invisible
>              ((nil) t)
>              ((t)   'open)
>              (else  nil)))

I personally find the "search within hidden text without opening it" to
be a completely useless option, so I couldn't want to cycle between all
3 options, but only between nil and `open'.

>    (define-key isearch-mode-map [?\M-i]
>           'isearch-cycle-search-invisible)

You'll have to place it in the M-s prefix map instead, which was setup
specifically to avoid eating up more key combinations which currently
make isearch exit.

> So, it would be good if the user could change the value of
> `search-invisible' as well directly from isearch.

I'm not sure I'd find it useful, but I can imagine some people might
like it and there's plenty of room under the M-s prefix for such
a thing.

It is in my opinion very useful in org-mode.