2010-03-09 6 views

Antwort

54

Dies ist eine alte Frage jetzt, aber ich schrieb vor kurzem RainbowDelimiters Modus dafür. Es ist ein "Regenbogen-Parens" -Modus, der alle Paren, Klammern und Klammern, die mit Clojure-Programmierung erstellt wurden, einfärbt.

Es markiert den gesamten Puffer, nicht nur den umgebenden Punkt des Parens.

Das Wichtigste ist, dass esFAST - alle anderen rainbow paren Modi Ich habe versucht, langsam nach unten Bearbeitung (insbesondere Scrollen) ziemlich viel. Ich habe mich sehr bemüht, das Profil zu erstellen und zu optimieren, sodass es keine merklichen Auswirkungen auf die Scroll-/Bearbeitungsgeschwindigkeit hat.

Sie können EmacsWiki page am Info darüber finden, und der Modus selbst bei rainbow-delimiters.el.

+3

+1 für die Dateiweite, schnell, einfach zu verwalten die Einstellungen und bietet klare Anweisungen für das EmacsWiki. – semperos

+0

Ich habe heute ein paar wichtige Änderungen vorgenommen, also sollten Sie die neueste Version herunterladen. Danke für die Kommentare. :) –

+0

Behalten Sie ein Changelog? Was sind die neuen Funktionen? – semperos

22

Ich verwende highlight-parentheses-mode aus dem Skript mquander erwähnt. Es bietet nicht viel von einem Regenbogen-Effekt aus der Box, aber es ist anpassbar:

(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")) 

Ich glaube, ich habe die tatsächlichen Farben von Vimclojure angehoben. Beachten Sie, dass Vimclojure alle Klammern in der Datei hervorhebt, während mit highlight-parentheses-mode nur die Parens markiert werden, die den Punkt enthalten (und nur eine begrenzte Anzahl von Ebenen). Ich finde, dass dieses Verhalten nützlich ist, aber es ist vielleicht ein bisschen im Schönheitsbereich im Vergleich mit dem Vimclojure Weg.

Ich bemerke jetzt, dass ich noch nie dazu gekommen bin, diese äußeren Farben zu reparieren ... Vielleicht werde ich jetzt, dass du mich daran erinnert hast.

+0

Wunderschöne. Das gefällt mir wirklich gut. Danke. Gibt es eine Möglichkeit, es automatisch für jede Lisp-Datei zu aktivieren? –

+1

Froh, das zu hören. :-) Und ja, Sie können es in das Standard-Setup für Lisp-Bearbeitung einfügen, indem Sie etwas wie '(add-hook 'clojure-mode-hook (lambda() (Hervorhebung-Klammern-Modus t) (para-Modus t))) 'in deinen' ~/.emacs'. Sie können dasselbe mit 'slime-repl-mode-hook',' emacs-lisp-mode-hook' usw. machen, obwohl Sie in diesem Fall wahrscheinlich das 'lambda' zu einer benannten Funktion ausschließen möchten verwende etwas wie '(add-hook 'clojure-mode-hook #' my-lisp-setup)'. –

+5

Ähm, irgendwie ist 'pa_redit' da reingerutscht ... Was in Ordnung ist, wie es der Heilige Gral von Lisp ist. Jeder Lisper muss es ausprobieren, und wenn Sie bereits Emacs verwenden, ist es ein absolutes Muss. –