次: , 前: Match Data, 上: Searching and Matching


33.7 探索と大文字小文字

デフォルトでは、Emacsの探索は探索対象テキストの大文字小文字を区別しません。 `FOO'を探す指定を行うと、 `Foo'や`foo'にも一致するとみなします。 これは、正規表現にも適用されます。 したがって、`[aB]'は、`a'や`A'や`b'や`B'に一致します。

この機能を望まないときには、 変数case-fold-searchnilを設定します。 すると、すべての文字は大文字小文字を保ってそのとおりに一致します。 これはバッファローカルな変数ですから、 変数を変更してもカレントバッファだけに影響します。 (see Intro to Buffer-Local。) あるいは、default-case-fold-searchの値を変更します。 これは、case-fold-searchを書き変えていないバッファ向けの デフォルト値です。

ユーザーレベルのインクリメンタルサーチ機能では、 大文字小文字の区別は異なった扱い方をします。 小英文字を与えるとその大文字にも一致しますが、 大英文字を与えると大文字のみに一致します。 しかし、これはLispコードで使用している探索関数には まったく関係ありません。

— ユーザオプション: case-replace

この変数は、置換関数が大文字小文字を保存するかどうかを決定する。 変数がnilであると、置換テキストをそのまま使うことを意味する。 nil以外の値であると、置換対象のテキストに応じて 置換テキストの大文字小文字を変換することを意味する。

この変数が実際に効果を発揮するのは関数replace-matchにおいてである。 see Replacing Match

— ユーザオプション: case-fold-search

このバッファローカルな変数は、 大文字小文字を区別して探索するかどうかを決定する。 変数がnilであると大文字小文字を区別する。 さもなければ大文字小文字を区別しない。

— 変数: default-case-fold-search

この変数の値は、case-fold-searchを書き変えていないバッファ向けの デフォルト値である。 これは(default-value 'case-fold-search)と同じである。