【问题标题】:How can Emacs-Lisp mode keep the echoed message when moving cursor around?Emacs-Lisp 模式如何在移动光标时保持回显消息?
【发布时间】:2016-09-13 08:30:42
【问题描述】:
  • 我注意到在使用 Emacs-Lisp 模式时,如果我将键盘光标放在一个实体下方并在该实体周围移动光标,则回显区域中显示的消息将不会被清除。

    例如,在附图中,如果我将光标移动到宏evil-save-goal-column 周围,那么回显消息defmacro: (NAME ARGLIST ... 仍然存在。

  • 但是,在几乎其他回声区域的情况下,当光标改变位置时,消息将立即被清除。

    例如下图,回显区显示flycheck-mode的消息。如果我在文本inasdfaf 周围移动光标,则首先清除回显区域,然后重新加载。

  • 那么,我想知道 Emacs-Lisp 模式是如何使回显区域如此特别的?当光标改变它在某个文本块周围的位置时,它如何保持回声区域不被清除?其他模式可以做同样的事情,例如flycheck-mode 还是 flyspell-mode?​​p>

非常感谢您查看我的长篇文章。

【问题讨论】:

  • 这是eldoc-mode的默认行为。据我所知,如果任何缓冲区支持eldoc-mode,那么它就是这样工作的。如果您愿意,可以随时通过向emacs-lisp-mode-hook 添加挂钩来禁用eldoc-mode
  • 非常感谢!这正是我正在寻找的。顺便说一句,你想创建一个答案而不是评论,以便我可以投票并接受它吗?
  • 您可能想在 emacs stackexchange 而不是 stackoverflow 下发布有关 emacs 的问题。

标签: emacs echo


【解决方案1】:

这就是eldoc-mode 提供的功能。对于任何支持eldoc-mode 的主要模式,如果您的光标位于函数(甚至是变量)上,eldoc-mode 将显示函数名称+它在mini-buffer 中接受的参数(注意:eldoc-mode在 emacs 25 中默认启用)。

您始终可以通过按 M-x eldoc-mode RET 来禁用它,或者,您可以添加一个挂钩到您想要的主要模式以将其禁用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 2013-03-07
    相关资源
    最近更新 更多