2010-03-09 17 views

Respuesta

54

Esta es una vieja pregunta ahora, pero recientemente escribí RainbowDelimiters modo para esto. Es un modo tipo "rainbow parens" que colorea todos los paréntesis, corchetes y llaves, hecho con la programación de Clojure en mente.

Destaca todo el búfer, no solo el punto que rodea los parens.

Lo más importante es que esRÁPIDO - todos los otros modos paren arco iris que he probado lenta de edición abajo (especialmente desplazamiento) bastante. Me esfuerzo mucho en la creación de perfiles y la optimización, por lo que no tiene un impacto notable en la velocidad de desplazamiento/edición.

Puede encontrar información al respecto en el EmacsWiki page, y el modo en sí es rainbow-delimiters.el.

+3

+1 para hacer que sea un archivo completo, rápido, fácil de administrar la configuración y proporcionar instrucciones claras en EmacsWiki. – semperos

+0

Hice algunos cambios importantes hoy, así que querrá descargar la última versión. Gracias por los comentarios. :) –

+0

¿Mantiene un registro de cambios? Cuáles son las nuevas características? – semperos

22

Estoy usando highlight-parentheses-mode del script mquander mencionado. No proporciona gran parte de un efecto de arco iris de la caja, pero es personalizable:

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

Creo que he levantado con los colores reales de Vimclojure. Tenga en cuenta que Vimclojure resalta todos los paréntesis en el archivo, mientras que con highlight-parentheses-mode solo se resaltarán los parens que en realidad contienen el punto (y solo un número limitado de niveles). Me resulta útil este comportamiento, pero es posible que falte un poco en el área de belleza en comparación con el modo Vimclojure.

Ahora noto que nunca me he dado cuenta de arreglar esos colores de paren externos en realidad ... Tal vez lo haga ahora que me lo ha recordado.

+0

Precioso. Realmente me gusta esto. Gracias. ¿Hay alguna manera de activarlo automáticamente para cualquier archivo lisp? –

+1

Me alegra oír eso. :-) Y sí, puede incluirlo en la configuración predeterminada para la edición de Lisp colocando algo como '(add-hook 'clojure-mode-hook (lambda() (resaltar-paréntesis-modo t) (modo de crédito t))) 'en tu' ~/.emacs'. Puedes hacer lo mismo con 'slime-repl-mode-hook',' emacs-lisp-mode-hook' etc., aunque en ese caso probablemente quieras restarle el valor de 'lambda' a una función nombrada y use algo como '(add-hook 'clojure-mode-hook #' my-lisp-setup)'. –

+5

Um, de alguna manera 'paredit' se deslizó allí ... Lo cual está bien, ya que esa es la edición del Santo Grial de Lisp. Cada Lisper necesita probarlo, y si ya está usando Emacs, es un * must * absoluto. –

Cuestiones relacionadas