回答:
(customize-set-variable case-fold-search nil)
または、それ以外の場合は単なるラッパーである独自のコマンドでその変数(オプション)をバインドしますquery-replace
。これには、クエリ置換以外の一般的な使用のために変数値を変更しないという利点があります。
case-replace
置換テキストの大文字と小文字を制御するvariableも参照してください。
を参照してくださいC-h f query-replace
、例:
が
case-fold-search
nil以外で、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
中にできるように、オンザフライで変更できたらうれしいです。しかし、残念ながらモードマップがあります。isearch
M-c
query-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.一致