emacs迷你缓冲区中搜索/替换字符串的不同面

当我使用query-replace替换“abc”替换“def”,然后再次调用query-replace时,我得到一个看起来像这样的迷你缓冲区,所有这些都在同一个面上:

  Query replace (default abc -> def):

如果“abc”和“def”显示在不同的面上,则更容易阅读此行.如果搜索或替换字符串包含空格,括号或箭头,所有这些都将与它们周围的提示混合,这将更加明显.我希望默认情况下提供搜索和替换字符串的不同面.但是,我在文档中找不到任何内容,甚至允许用户单独自定义用于显示搜索和替换字符串的面.有人能为我提供一些我可以用来做这个的代码吗?

最佳答案 使用库
replace+.el – 描述
here.

另请参阅Emacs bug #16136,这是一个相关的增强请求.问题是用户目前只能决定整个提示是否有面子. (如果是这样的话,他们可以自定义那张脸.)所需要的是能够做到这一点,但也让那张脸可以退回到可能已经给予提示字符串特定部分的任何面孔.

replace+.el在整个提示中关闭了面部,并在不同的面上突出显示提示的重要部分(正是您要求的部分)(您当然可以自定义.如果实现增强请求#16136,则提示的其余部分)可以保持在正常的提示面(迷你缓冲提示).

有点难以相信Emacs的设计是如此短视,但事实确实如此.它是用C代码实现的,因此不太适合用户改进.我们希望能够解决问题.同时,您可以通过加载replace.el来获得您的请求,但在提示的其余部分不使用minibuffer-prompt.

点赞