在他们内部显示括号 - Emacs

时间:2016-01-18 02:45:16

标签: emacs lisp elisp paredit

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

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

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

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

如何启用此功能?我发现在paredit中进行slurpage和barfage时,我无法很好地跟踪括号,因为除非我在它们上面,否则它们不会被着色。

( <-colored     cursor->|     colored-> ) This is optimal

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

2 个答案:

答案 0 :(得分:0)

这适用于我(新建议实施可能需要更新的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)))))

答案 1 :(得分:0)

感谢lawlist的评论,我已将code from his answer on another question添加到我的初始文件中。

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