emacs:如何进行区分大小写的替换字符串

问题描述 投票:0回答:2

我正在尝试用一个区域中的

\gamma
替换所有
\zeta
。我不想碰
\Gamma
。我非常决定这样做,而且我真的不想经历查询替换。我做
M-x replace string: <RET> \gamma <RET> \zeta <RET> 
但这用
\gamma
代替了
\Gamma
\zeta
。我如何才能只用
\gamma
替换
\zeta
,而
\Gamma
保持不变?

replace emacs case-sensitive
2个回答
1
投票

您可以在调用

case-fold-search
之前将
nil
设置为
query-replace

键入M - :(分号),然后是

(setq case-fold-search nil)
,然后正常继续。该设置将仅适用于您当前的缓冲区。通过再次将
case-fold-search
设置为
t
恢复到默认行为。


1
投票

我发现一个方便的技巧是利用 isearch 键绑定来 (a) 切换区分大小写和 (b) 为 isearch 术语启动查询替换:

  • C-s
    \gamma
  • M-c 切换 isearch 的大小写敏感度。
  • M-% 使用与 isearch 相同的区分大小写为搜索词开始
    query-replace
  • ! 无需查询即可替换所有匹配项。

如果您最终养成了将每个查询替换作为 isearch 开始的习惯,这将是非常无缝的。

© www.soinside.com 2019 - 2024. All rights reserved.