【问题标题】:distinct face for search/replacement strings in emacs minibufferemacs minibuffer中搜索/替换字符串的不同面
【发布时间】:2014-01-01 16:55:37
【问题描述】:

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

  Query replace (default abc -> def):

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

【问题讨论】:

  • 听起来不错。您为什么不建议将此作为 Emacs 的补充。我相信您可以为此使用 Help -> Send Bug Report 菜单项。
  • @Alan:你不是在谈论迷你缓冲区而不是模式行吗?
  • 有问题的函数是query-replace-read-fromreplace.el 中。而且,是的,@TacticalCoder 是正确的——有问题的是迷你缓冲区,而不是模式行。应该可以对query-replace-read-from 的不同元素或类似覆盖/文本属性的东西使用字体锁定。也可以修改布局的格式。我们已经知道可以更改minibuffer-prompt 的字体,还可以使用 enter/exit-minibuffer-setup 设置 minibuffer 默认字体;所以应该可以按照你的建议去做。

标签: emacs emacs-faces


【解决方案1】:

使用库replace+.el -- 描述here

另见 Emacs bug #16136,这是一个相关的增强请求。问题是用户目前只能决定整个提示是否要有一张脸。 (如果是这样,他们可以自定义该面孔。)需要的是能够做到这一点,但也让该面孔在提示字符串的特定部分可能已经给出的任何面孔之后退居二线。

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

很难相信 Emacs 的设计如此短视,但事实就是如此。而且它是用 C 代码实现的,因此不太适合用户改进。让我们希望得到修复。同时,您可以通过加载replace.el 来获取您请求的内容,但在提示的其余部分不使用minibuffer-prompt

【讨论】:

    猜你喜欢
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2010-11-14
    • 1970-01-01
    • 2017-08-05
    相关资源
    最近更新 更多