no voy a editar código Lisp sin un editor que hace lo Emacs hará con la siguiente configuración:
(define-key lisp-mode-shared-map "[" 'insert-parentheses)
(define-key lisp-mode-shared-map "]" 'move-past-close-and-reindent)
Los ex inserciones paréntesis equilibrados. Si le da un argumento de prefijo numérico, inserta esos muchos pares anidados. Por defecto, inserta uno. Si tiene una región de texto marcada, encierra esa región en el par insertado más interno. Eso significa que nunca abrirá un paréntesis que no esté cerrado.
Esto último es más difícil de explicar, ya que se usa con menos frecuencia. Es más un comando de navegación que un comando de inserción. Confirma que ha terminado de editar el formulario actual y mueve el cursor hacia arriba, hacia afuera y hacia atrás, preparándose para la siguiente inserción probable.
Con estas claves vinculadas, ya no es necesario utilizar la tecla Mayús para acceder a los paréntesis. Además, esto deja las claves entre paréntesis unidas de forma normal, para cuando se requiere la reparación de sexp o un carácter de paréntesis literal. Robé las llaves de soporte porque se usan con poca frecuencia en Emacs Lisp y Common Lisp. Los caracteres de paréntesis siguen siendo accesibles con las asociaciones de teclas meta:
(defmacro make-key-inserter (def)
"Substitute for `self-insert-command'."
`(lambda (arg)
(interactive "*P")
(insert-char ,def (prefix-numeric-value arg))))
(define-key lisp-mode-shared-map "\M-[" (make-key-inserter ?\[))
(define-key lisp-mode-shared-map "\M-]" (make-key-inserter ?\]))
No es imprescindible el uso de Emacs, pero no se conforman con menos con otro editor que no se puede al menos igualar esta capacidad. También hay toda una familia de comandos para navegar y manipular el árbol sexp como un árbol. Comprender por qué es valioso requerirá que busque algo por un tiempo hasta que deje de ver la sintaxis y comience a ver el árbol.
Oh, eso es tan completamente rock! ¡Increíble! –
Hmmm, el applet java que se ejecuta simplemente no funciona para mí. Parece el tipo de cosa que estaba buscando, pero en realidad no funciona en FF o Chrome. Lástima, tendré que mirar alrededor para ver si hay una solución para que funcione. – Kzqai
@Tchalvak: raro. Está trabajando en FF en Vista para mí en este momento. –