【问题标题】:How do I get "rainbow parentheses" in emacs?如何在 emacs 中获得“彩虹括号”?
【发布时间】:2011-01-25 15:55:48
【问题描述】:

我想要在 Emacs 中编辑 Clojure 的彩虹括号,因为 VI does this 我认为在 Emacs 中它应该是 M-x 蝴蝶之类的东西 :)

【问题讨论】:

    标签: emacs clojure syntax-highlighting


    【解决方案1】:

    这是一个老问题,但我最近为此写了 RainbowDelimiters 模式。这是一种“彩虹括号”类型的模式,可以为所有括号、括号和大括号着色,并考虑到 Clojure 编程。

    它突出显示整个缓冲区,而不仅仅是围绕点的括号。

    最重要的是 这是 FAST - 我尝试过的所有其他 Rainbow Paren 模式都会减慢编辑速度(尤其是滚动)非常多。我在分析和优化方面投入了大量精力,因此对滚动/编辑速度没有任何明显影响。

    您可以在 EmacsWiki page 找到有关它的信息,模式本身在 rainbow-delimiters.el

    【讨论】:

    • +1 用于使其在文件范围内、快速、易于管理设置并在 EmacsWiki 上提供清晰的说明。
    • 我今天做了一些重要的改变,所以你会想去下载最新的版本。感谢cmets。 :)
    • 你有更新日志吗?有哪些新功能?
    • 几个更改(更改日志在文件中)。除了突出显示 XML/HTML 标记之外,我已将所有内容都从我的列表中剔除。
    • 这正是我一直在寻找的!非常感谢!
    【解决方案2】:

    我正在使用提到的脚本 mquander 中的highlight-parentheses-mode。它没有提供太多开箱即用的彩虹效果,但它是可定制的:

    (setq hl-paren-colors
          '(;"#8f8f8f" ; this comes from Zenburn
                       ; and I guess I'll try to make the far-outer parens look like this
            "orange1" "yellow1" "greenyellow" "green1"
            "springgreen1" "cyan1" "slateblue1" "magenta1" "purple"))
    

    我相信我已经从 Vimclojure 中提取了实际颜色。请注意,Vimclojure 会突出显示文件中的 all 括号,而使用 highlight-parentheses-mode 时,只会突出显示实际包含该点的括号(并且只有有限数量的级别)。我碰巧发现这种行为很有用,但与 Vimclojure 方式相比,它在美观方面可能有点缺乏。

    我现在注意到我实际上从来没有修复过那些外部括号颜色......也许现在你已经提醒我了。

    【讨论】:

    • 华丽。我真的很喜欢这个。谢谢。有没有办法为任何 lisp 文件自动打开它?
    • 很高兴听到这个消息。 :-) 是的,您可以通过在您的~/.emacs 中放置类似(add-hook 'clojure-mode-hook (lambda () (highlight-parentheses-mode t) (paredit-mode t))) 的内容,将其包含在Lisp 编辑的默认设置中。您可以对slime-repl-mode-hookemacs-lisp-mode-hook 等执行相同的操作,但在这种情况下,您可能希望将lambda 分解为命名函数并使用(add-hook 'clojure-mode-hook #'my-lisp-setup) 之类的东西。
    • 嗯,不知何故 paredit 溜进去了……没关系,因为那是 Lisp 编辑的圣杯。每个 Lisper 都需要尝试一下,如果您已经在使用 Emacs,那么它是绝对必须
    • 太棒了。非常感谢!我希望我能再次投票给你。
    • 括号太窄(默认),你必须在那个代码块中。推荐rainbow-delimiters,括号颜色更鲜明。
    【解决方案3】:

    Here's a mode for that 我过去曾简要使用过。 Here's another one 没试过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-13
      • 2011-01-18
      • 2018-09-02
      • 2013-06-28
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多