【发布时间】:2011-01-25 15:55:48
【问题描述】:
我想要在 Emacs 中编辑 Clojure 的彩虹括号,因为 VI does this 我认为在 Emacs 中它应该是 M-x 蝴蝶之类的东西 :)
【问题讨论】:
标签: emacs clojure syntax-highlighting
我想要在 Emacs 中编辑 Clojure 的彩虹括号,因为 VI does this 我认为在 Emacs 中它应该是 M-x 蝴蝶之类的东西 :)
【问题讨论】:
标签: emacs clojure syntax-highlighting
这是一个老问题,但我最近为此写了 RainbowDelimiters 模式。这是一种“彩虹括号”类型的模式,可以为所有括号、括号和大括号着色,并考虑到 Clojure 编程。
它突出显示整个缓冲区,而不仅仅是围绕点的括号。
最重要的是 这是 FAST - 我尝试过的所有其他 Rainbow Paren 模式都会减慢编辑速度(尤其是滚动)非常多。我在分析和优化方面投入了大量精力,因此对滚动/编辑速度没有任何明显影响。
您可以在 EmacsWiki page 找到有关它的信息,模式本身在 rainbow-delimiters.el。
【讨论】:
我正在使用提到的脚本 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 方式相比,它在美观方面可能有点缺乏。
我现在注意到我实际上从来没有修复过那些外部括号颜色......也许现在你已经提醒我了。
【讨论】:
~/.emacs 中放置类似(add-hook 'clojure-mode-hook (lambda () (highlight-parentheses-mode t) (paredit-mode t))) 的内容,将其包含在Lisp 编辑的默认设置中。您可以对slime-repl-mode-hook、emacs-lisp-mode-hook 等执行相同的操作,但在这种情况下,您可能希望将lambda 分解为命名函数并使用(add-hook 'clojure-mode-hook #'my-lisp-setup) 之类的东西。
paredit 溜进去了……没关系,因为那是 Lisp 编辑的圣杯。每个 Lisper 都需要尝试一下,如果您已经在使用 Emacs,那么它是绝对必须。
Here's a mode for that 我过去曾简要使用过。 Here's another one 没试过。
【讨论】: