emacs - Learning Elisp: ¿cuáles son las bibliotecas de mayor calidad para leer el código fuente?
styles idiomatic (2)
Como dijo Trey, usa el elisp de Emacs para aprender. Normalmente hago una de dos cosas:
1) Si estoy tratando de averiguar cómo usar una función específica, dired
una ventana dired
y lo haré:
% g foobar
donde foobar
es el nombre de la función que me interesa aprender a usar. Eso marcará todos los archivos que usan foobar
y luego los busco para ver cómo llamarlos, en qué contexto se llama, etc.
2) Si estoy tratando de averiguar cómo hacer algo, y conozco un modo que hace algo similar, miraré el código fuente de ese modo para ver cómo lo hacen. Si no sabe por dónde empezar, pero sabe cómo ejecutar lo que quiere hacer, una cosa útil es buscarlo mediante el enlace de teclas. Por ejemplo, en un búfer dired
, haga lo siguiente:
C-h k % g
y eso traerá para arriba:
% g runs the command dired-mark-files-containing-regexp, which is an
% interactive compiled Lisp function in `dired.el''.
It is bound to % g, <menu-bar> <regexp> <mark-cont>.
(dired-mark-files-containing-regexp regexp &optional marker-char)
Mark all files with contents containing regexp for use in later
commands. A prefix argument means to unmark them instead.
`.'' and `..'' are never marked.
Al hacer clic en dired.el
en el texto anterior (en un búfer de emacs), se abrirá el código fuente y lo llevará directamente a la definición de la función. Es una gran manera de aprender con el ejemplo.
No olvide el depurador elisp como una forma de ver exactamente lo que está sucediendo y siguiendo a medida que el código se ejecuta paso a paso. Puede marcar el código para la depuración utilizando edebug-defun
y luego invocarlo como de costumbre, en cuyo momento emacs lo guiará a través del código.
Al aprender un nuevo lenguaje de programación, "leer el código fuente" es un consejo común que reciben los expertos. Sin embargo, con un sistema tan grande como emacs, construido durante décadas por muchas personas, no es tan fácil para el principiante descubrir qué bibliotecas son los mejores ejemplos de programación idiomática de Elisp. Por lo tanto, me gustaría obtener algunas recomendaciones con respecto a los siguientes criterios:
estilo de programación idiomático elisp
Adherencia a las pautas de programación de emacs.
Uso inteligente del paquete cl de acuerdo con las directrices de emacs
uso inteligente del paquete eieio
organización ejemplar de una sola biblioteca de archivos .el
organización ejemplar de una biblioteca de múltiples archivos / paquetes múltiples
cualquier criterio que consideres importante
Darse las razones por las que recomienda ciertas bibliotecas para estudios auto-didácticos sin duda sería informativo para los principiantes en la programación de Emacs lisp.
El código fuente que recomendaría sería el de Emacs. Comience con lo simple (juego de palabras), y mire otros archivos como no lo hace.
M-x find-library simple RET
Creo que se explica por sí mismo por qué el propio código lisp de Emacs es un buen ejemplo de Emacs lisp.