Next: , Previous: , Up: Searching and Matching   [Contents][Index]


34.2 検索と大文字小文字

デフォルトのEmacs検索では検索するテキストのcase(大文字と小文字)は無視されます。検索対象に‘FOO’を指定すると、‘Foo’や‘foo’もマッチとみなされます。これは正規表現にも適用されます。つまり‘[aB]’は‘a’、‘A’、‘b’、‘B’にもマッチするでしょう。

この機能が望ましくなければ変数case-fold-searchnilをセットしてください。その場合にはすべての文字はcaseを含めて正確にマッチしなければなりません。これはバッファーローカル変数です。この変数の変更はカレントバッファーだけに影響を与えます(Intro to Buffer-Localを参照)。かわりにデフォルト値を変更することもできます。Lispコードではletを使用してcase-fold-searchを望む値にバインドするほうが、より一般的でしょう。

ユーザーレベルのインクリメンタル検索機能ではcaseの区別が異なることに注意してください。検索文字列に含まれるのが小文字だけなら検索はcaseを無視しますが、検索文字列に1つ以上の大文字が含まれれば検索はcaseを区別するようになります。しかしLispコード内で使用される検索関数では、これは何も行いません。Incremental Search in The GNU Emacs Manualを参照してください。

User Option: case-fold-search

このバッファーローカル変数は検索がcaseを無視するべきかどうかを決定する。この変数がnilなら検索はcaseを無視しない。それ以外(とデフォルト)ではcaseを無視する。

User Option: case-replace

この変数は高レベルの置換関数がcaseを保持するべきかどうかを決定する。この変数がnilなら、それは置換テキストをそのまま使用することを意味する。非nil値は置換されるテキストに応じて、置換テキストのcaseを変換することを意味する。

この変数は関数replace-matchの引数として渡すことにより使用される。Replacing Matchを参照のこと。