Next: , Previous: Match Data, Up: 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コードで使用している探索関数には まったく関係ありません。

— User Option: case-replace

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

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

— User Option: case-fold-search

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

— Variable: default-case-fold-search

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