デフォルトでは、Emacsでの検索は検索対象テキストの大文字・小文字を区別しません。‘FOO’を検索するように指定した場合、‘Foo’や‘foo’も一致とみなされます。これは正規表現にも適用されるため、‘[aB]’は‘a’や‘A’、‘b’、あるいは‘B’とも一致します。
この機能が不要な場合は、変数 case-fold-search に nil
を設定してください。すると、大文字・小文字を含めてすべての文字が完全に一致している必要があります。これはバッファローカル変数であり、この変数を変更すると現在のバッファにのみ影響します。(バッファローカル変数入門を参照してください。)あるいは、デフォルト値を変更することもできます。Lispコードでは、通常
let を使用して case-fold-search を目的の値にバインドします。
なお、ユーザーレベルのインクリメンタル検索機能では、大文字・小文字の区別の扱いが異なります。検索文字列に小文字のみが含まれている場合は大文字・小文字を区別しませんが、大文字が1文字以上含まれている場合は大文字・小文字を区別するようになります。ただし、これはLispコードで使用される検索関数とは無関係です。The GNU Emacs Manualのインクリメンタル検索を参照してください。
このバッファローカル変数は、検索時に大文字小文字を区別するかどうかを決定します。この変数が nil
の場合は大文字小文字を区別せず、それ以外の場合(デフォルト)は区別します。
この変数は、上位レベルの置換関数が大文字・小文字を保持するかどうかを決定します。変数が nil
の場合、置換テキストをそのまま使用することを意味します。nil
以外の値は、置換対象のテキストに応じて置換テキストの大文字・小文字を変換することを意味します。
この変数は、関数 replace-match の引数として渡すことで使用します。一致したテキストの置換を参照してください。