回答:
(customize-set-variable case-fold-search nil)
または、それ以外の場合は単なるラッパーである独自のコマンドでその変数(オプション)をバインドしますquery-replace。これには、クエリ置換以外の一般的な使用のために変数値を変更しないという利点があります。
case-replace置換テキストの大文字と小文字を制御するvariableも参照してください。
を参照してくださいC-h f query-replace、例:
が
case-fold-searchnil以外で、FROM-STRINGに大文字がない場合、一致は大文字と小文字を区別しません。case-replaceおよびcase-fold-searchが非nilで、FROM-STRINGに大文字がない場合、置換は古いテキストの大文字と小文字のパターンを新しいテキストに転送します
以下のコメントとEmacsのバグ#20687も参照してください。ここでは、のperform-replace間にケースの折りたたみを切り替えるためにパッチを適用する方法を示していますquery-replace。
この方法でperform-replaceバインドするための既存のコードにも注意してくださいcase-fold-search(依存する変数に注意してください):
(case-fold-search (if (and case-fold-search search-upper-case)
(isearch-no-upper-case-p from-string regexp-flag)
case-fold-search))
case-fold-search中にできるように、オンザフライで変更できたらうれしいです。しかし、残念ながらモードマップがあります。isearchM-cquery-replace
query-replace-map:(defun toggle-case () (interactive) (setq case-fold-search (not case-fold-search)))と(define-key query-replace-map "C" 'toggle-case)。ただし、そのマップ内のキーの処理はでハードコーディングされていperform-replaceます。あなたはすることがありますM-x report-emacs-bug取得するには、perform-replaceより多くのオープン終了するコードを、そのキーがマップに追加することができます。少なくとも、キーにバインドされたcmdを呼び出すフォールバック句が必要です。
query-replace-map前に見つけなかったのかわからない。
(customize-set-variable case-fold-search nil)エラーを与えますcustomize-set-variable: Attempt to set a constant symbol: nil。また、私は両方を試してみました(setq case-fold-search nil)し、(setq case-replace nil)しかし、クエリがまだ大文字V.一致