当isearch-forward作为一个命令运行时,我输入的上下文将在当前缓冲区中突出显示,但是当运行查询替换时,请高亮显示那个,我怎样才能使它变为高亮?
答案 0 :(得分:1)
使用isearch-query-replace
。它突出显示要替换的字符串。
答案 1 :(得分:1)
听起来你说query-replace
没有突出显示所有匹配的事件。是对的吗? 应该突出显示它们。如果没有,则尝试在没有init文件的情况下启动Emacs:emacs -Q
。如果显示不缺少突出显示,则递归地将您的init文件一分为二,以找到罪魁祸首。
@Rocky提到isearch-query-replace
。这不会改变突出显示(应该已经打开),但是它的作用是让你在isearching时开始查询替换,使用最后一个搜索字符串作为匹配文本的模式{ {1}}。
查询替换的替代方法,特别是如果您要进行的替换次数相对较少并且有很多匹配项,则可以使用on-demand replacement ,而isearching 。为此,您需要库Isearch+。
要按需更换任何给定的搜索匹配,只需点击 query-replace
即可。使用前缀arg,C-M-RET
会提示您输入替换文本(默认情况下将替换为无文本,这意味着删除匹配)。因此,您可以在同一个Isearch调用中随时更改替换文本。
替换搜索匹配后,C-M-RET
移动到下一个。因此,如果您想要替换几个连续的搜索命中,您可以重复使用它。或者使用C-M-RET
跳过替换当前匹配并移至下一个匹配。
按需搜索替换也适用于正则表达式搜索,就像查询替换一样,替换文本可以按字面顺序插入,也可以按C-s
解释。在后一种情况下,您可以使用query-replace-regexp
,\&
,\=\N
,\#
和\,
。您可以在Isearch期间随时使用 \?
来切换替换文本是按字面使用还是根据特殊的regexp替换构造进行解释。
答案 2 :(得分:1)
以下软件包为查询替换提供实时突出显示和替换预览,以及其他功能:
我目前使用visual-regexp-steroids.el
。
可以从MELPA安装所有三个包。