当我在 emacs 中键入右括号时,迷你缓冲区会显示包含匹配左括号的行。有没有办法在 minibuffer 中显示括号、括号等的匹配行而不删除括号并重新键入它?
问问题
1322 次
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 回答