【问题标题】:Show Parentheses When Inside Them - Emacs在括号内显示括号 - Emacs
【发布时间】:2016-01-18 02:45:16
【问题描述】:

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

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

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

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

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

这是最优的:

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

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

【问题讨论】:

  • 我使用show-paren-modeparedit-mode。它像正常一样显示匹配的括号。你能澄清一下你在寻找两者之间的互动吗?
  • @verdammelt 我希望澄清它。
  • 考虑使用一个不依赖于您的问题中提到的任何内容的库,并关闭默认的show-parens-mode - 即,如果您的饮食/barfing/sluping/paredit/等都没有关系.看看高亮括号:github.com/tsdh/highlight-parentheses.el 看看彩虹分隔符:github.com/Fanael/rainbow-delimiters 这是我自己在highlight-parentheses 上的旋转的链接,我更喜欢它(出于一些重要原因,例如滚动并且不会累积不必要的叠加层...):stackoverflow.com/a/23998965/2112489
  • hl-sexp-mode 可能足以满足您的需求
  • @lawlist 感谢您的回复,您的另一个堆栈溢出答案中的那个效果很好。

标签: emacs lisp elisp paredit


【解决方案1】:

这对我来说很有效(新的建议实现可能需要更新的 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)))))

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      • 2018-12-28
      相关资源
      最近更新 更多