2010-03-09 52 views

回答

54

这是一个老问题,但我最近写了RainbowDelimiters模式。这是一个'彩虹parens'类型模式,用Clojure编程为所有的parens,括号和大括号着色。

它突出显示了整个缓冲区,而不仅仅是parens周围的点。

最重要的事情是,FAST - 所有其他彩虹括号模式我试图减缓编辑(尤其是滚动)不少。我花费大量精力分析和优化它,因此不会对滚动/编辑速度产生任何显着影响。

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

+3

+1使它在文件范围内快速,易于管理设置并在EmacsWiki上提供清晰的指示。 – semperos 2011-03-21 14:41:06

+0

我今天做了一些重要的改变,所以你要去下载最新版本。感谢您的评论。 :) – 2011-03-22 20:24:15

+0

你有更新日志吗?什么是新功能? – semperos 2011-03-22 21:00:01

22

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

(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在文件中突出显示全部为括号,而在highlight-parentheses-mode中,只有实际包含该点的参数才会高亮显示(且只有有限的几个级别)。我碰巧发现这种行为很有用,但与Vimclojure相比,它在可爱区域可能有点欠缺。

我现在注意到,我从来没有得到'轮到固定那些外面paren颜色实际上...也许我会现在你已经提醒了我关于它。

+0

华丽。我非常喜欢这个。谢谢。有没有办法为任何lisp文件自动打开它? – 2010-03-10 15:40:40

+1

很高兴听到这个消息。 :-)是的,你可以通过放置类似'(add-hook'clojure-mode-hook(lambda()(highlight-parentheses-mode t)(paredit-mode t))来将它包含在Lisp编辑的默认设置中。 ))''在'〜/ .emacs'中。你可以用'slime-repl-mode-hook','emacs-lisp-mode-hook'等来做同样的事情,虽然在这种情况下你可能想把lambda分解为一个命名的函数,使用'(加钩'clojure-mode-hook#'my-lisp-setup)''。 – 2010-03-10 20:34:05

+5

恩,不知何故,'paredit'在那里滑了......这是好的,因为这是Lisp编辑的圣杯。每个Lisper都需要尝试一下,如果你已经在使用Emacs,那么它就是绝对必须的。 – 2010-03-10 20:36:19