你怎么告诉Emacs在搜索和替换字符串中单独留下案例?

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

我正在尝试执行正则表达式搜索并在Emacs中替换(使用M-x query-replace-regexp),但通常有用的智能案例正在阻碍。我的来源是:

One
Two
Three

而我想用<item name="One"/>替换每一行。不幸的是,每一行开头的资本都被误解了,我得到的<Item>是一个我不想要的大写字母。

我可以找到有关如何使搜索大小写敏感的示例,以及如何在替换字符串中保持\1小写,但没有关于如何保持整个替换字符串大小写 - 未修改。

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

尝试将此添加到.emacs:

(setq case-replace nil)

C-h v案例替换RET:

文档:非零意味着`query-replace'应该保留替换中的大小写。

并且Replace Commands and Case手册的链接详细说明了与案例和适当变量的所有交互。

或者您可以定义一个新命令,如:

(defun query-replace-no-case ()
   (interactive)
   (let ((case-replace nil))
       (call-interactively 'query-replace))))

并且,如果您在函数中对此进行编码,并且只想暂时设置变量,那么您可以执行以下操作:

(let ((case-replace nil))
   (while (search-forward ...)
       (replace-match ...)))

-1
投票

在当前的emacs中,您可以在“选项”菜单中找到该选项。如果您希望通过相同的菜单保存选项。

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