在括号内显示括号 - Emacs

Show Parentheses When Inside Them - Emacs

在 emacs 中有一个模式 show-paren-mode 当光标在另一个上时,它会为相反的匹配括号着色。我写了一个例子来解释 show-paren-mode:

( <-colored  colored-> )| <-cursor 

但是当光标不在括号上时它不起作用:

( <-not colored    cursor inside->|    not colored-> )

我该如何启用它?我发现在 paredit 中执行 slurpage 和 barfage 时,我无法很好地跟踪括号,因为除非我在上面,否则它们没有颜色。

这是最优的:

( <-colored    cursor inside->|    colored-> )

编辑:感谢@lawlist 的评论,我已经解决了这个问题。

这对我来说效果很好(新建议实施可能需要更新的 Emacs 版本(高于 25?)):

(define-advice show-paren-function (:around (fn) fix)
  "Highlight enclosing parens."
  (cond ((looking-at-p "\s(") (funcall fn))
        (t (save-excursion
             (ignore-errors (backward-up-list))
             (funcall fn)))))

感谢 lawlist I have added the code from his answer on another question 对我的初始文件的评论。

它以彩虹图案为每组匹配的括号着色。