問題は、isearch が機能するように設計されている方法と一致する方法で検索することを考えていないことだと思います。したがって、現在存在する isearch のコンテキスト内では、あなたの質問は実際には意味がありません。
Isearch はすでに、まさにあなたが望む機能を提供してくれますが、その Cg をタイプすることによって、それが実現することを望んでいることを伝える必要があります。あなたが何をしたいのか、いつそれをしたいのかをisearchに伝えないと、何をすべきかをどのように知っているのでしょうか?
@Tom が説明しようとしたように、isearch がバッファ内の現在の位置から開始するデフォルトの方法は、失敗した文字を入力してから Cs を押すと、バッファの先頭から再起動できます。これは非常に価値のある機能です。多くの人がこの動作に依存していると確信しています。マクロを使用して常にバッファーの先頭から isearch を開始するというあなたの方法は、私たちの多くを当惑させ、混乱させるでしょう。もちろん、あなたのような慣れている人にとっては悪いことではありません。とはいえ、一致しないテキストを削除するために Cg を押さなければならないというあなたの嫌悪に、残りの私たちがかなり混乱していることを意味します。
また、isearch を開始した直後 (セッションの最初以外の場合) (つまり、他の文字を入力する前) に 2 番目の Cs を押した場合の動作についても少し考えてみてください。特に、以前の検索文字列が現在のバッファ内の何かに部分的にしか一致しない場合にどうなるかに注意してください。次に Cg を押します (また、現在のバッファ内の何かに部分的に一致するかどうかに関係なく、失敗した検索文字列がどのように表示されるかにも注意してください。いいえ)。
あなたの機能が multi-isearch-next-buffer-function の使用にどのように悪影響を与えるかについても考えてください。
emacs で isearch に実行してもらいたいことを他のエディターが実行できると主張しても、実際にはあまり役に立ちません。
あなたが本当に欲しいのは、現在のバッファーに存在するかどうかに関係なく何かを検索するisearchの機能ではなく、現在のバッファーで見つけることができるテキストのみを検索できる、わずかに異なるタイプの検索機能だと思いますバッファかどうか。
おそらく isearch-mode は、あなたがやりたいことをするように適応させることができますが、何らかの方法で、いくつかの elisp コードを書かなければならないと思います。おそらく、新しい検索モードを isearch-mode 内のオプションとして実装できます。これは、大文字と小文字の区別のオンとオフを切り替えるのと同じ方法でオンとオフを切り替えることができます。これは、デフォルトで大文字と小文字の区別をオンまたはオフにできるのと同じ方法で、デフォルトで設定できます。