Answers:
(customize-set-variable case-fold-search nil)
或在您自己的命令中绑定该变量(选项),否则该命令只是一个包装器query-replace
。这样做的好处是,在查询替换之外,它不会更改一般使用的变量值。
另请参见variable case-replace
,它控制替换文本的大小写。
另请参见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
代码更加开放,因此可以将键添加到地图。它至少应该具有一个fallback子句,该子句仅调用绑定到密钥的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。–