5

当我在 emacs 中键入右括号时,迷你缓冲区会显示包含匹配左括号的行。有没有办法在 minibuffer 中显示括号、括号等的匹配行而不删除括号并重新键入它?

4

4 回答 4

12

我假设您已打开 show-paren-mode 以突出显示匹配的括号:

(show-paren-mode t)

如果括号不在屏幕上,这将显示匹配的行:

(defadvice show-paren-function (after my-echo-paren-matching-line activate)
  "If a matching paren is off-screen, echo the matching line."
  (when (char-equal (char-syntax (char-before (point))) ?\))
    (let ((matching-text (blink-matching-open)))
      (when matching-text
        (message matching-text)))))
于 2012-11-27T02:46:02.527 回答
2

您可以这样做M-x blink-matching-open RET,如果您喜欢经常使用它,请将其绑定到一个键。

于 2012-11-27T14:11:56.137 回答
1

scotfrazer 的答案非常适用于括号、大括号等,但如果您需要匹配 ruby​​ def...end 或 class...end 分隔符(或其他语言中的类似) ,来自 emacs.stackexchange 的这个答案效果很好:

(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))

如果将光标停在分隔符上 0.5 秒或更长时间,匹配的(页外)分隔符将突出显示。

于 2015-04-29T16:20:16.120 回答
0

您可以安装Mic Paren(在 MELPA 上可用:)M-x package-install mic-paren并使用M-x paren-activate

于 2015-07-17T22:49:21.367 回答