哪种次要模式在回显区域中打印开头括号?


10

这是一个非常不错的功能,但仅在插入括号时显示,而在更改为光标位置时不显示。我可以调用一个交互式命令来显示此命令吗?我可以配置它以在光标移动时显示吗?

在此处输入图片说明

Answers:


6

当在窗口中看不到sexp的开头时,将显示该消息。否则,开始括号将暂时突出显示。

此行为是在simple.el任何次要模式中实现的,并且与任何次要模式均不相关。它是通过插入字符时运行的钩子实现的。

实际的闪烁/消息来自command blink-matching-open,您可以自称。例如,您可以启动一个空闲计时器,每当您在封闭的括号中暂停片刻,它就会调用此命令。这就是内置的show-paren-mode工作方式。

(defvar match-paren--idle-timer nil)
(defvar match-paren--delay 0.5)
(setq match-paren--idle-timer (run-with-idle-timer match-paren--delay t #'blink-matching-open))

我也想要这个,但是如何使它不是临时的呢?即我希望消息保留在迷你缓冲区中,直到光标移动为止。
Faheem Mitha

4

M-x blink-matching-open RET如果您正好在括号内,则可以使用来显示消息。您可能想尝试“即时”执行此操作M-x show-paren-mode,但实际上并没有给您此信息。

否则,您可以使用类似

(add-hook 'post-command-hook
          (lambda ()
            (if (and (not (bobp))
                     (eq ?\) (char-syntax (char-before))))
                (blink-matching-open))))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.