¡Qué gran pregunta! Aquí está el camino que he tomado:
Paso 0: lee el tutorial de Emacs
Lea el Tutorial de Emacs antes que nada. Parece que has hecho esto. Bien por ti! Sin embargo, para cualquiera que venga a esto más adelante, este es el lugar para comenzar su viaje de Emacs. Hay muchas publicaciones de blog engañosas por ahí. Sobre complican las cosas. Emacs lo hace fácil:
- Inicie Emacs
- prensa
<RET>
También puede acceder a través de Ctrl + h
t
, o C-h t
en notación Emacs.
El tutorial presenta los conceptos básicos de Emacs, aclara la terminología histórica y te permite comenzar en menos de 30 minutos. También prepara el escenario para el siguiente paso.
Paso 1: Lea "Introducción a la programación en Emacs Lisp"
El siguiente paso es leer Una Introducción a la Programación en Emacs Lisp . No puedo recomendar este libro lo suficiente; está muy bien escrito! Viene con la mayoría de las instalaciones de Emacs 1 . Simplemente presione C-h i
y selecciónelo del menú. También puede ir directamente a través de C-h i m Emacs Lisp Intro
.
El prefacio dice:
Este texto está escrito como una introducción elemental para personas que no son programadores.
Debería decir "para personas que no son programadores de Lisp". Lisp es un poco diferente de otros idiomas, por lo que vale la pena leerlo si no está familiarizado con Lisp. El autor tiene un estilo accesible y recorre muchos ejemplos. Me llevó alrededor de una semana resolverlo.
Paso 1.5: Consejos de desarrollo de Emacs Lisp con John Wiegley
A finales de 2015, John es el responsable del proyecto Emacs . Sacha Chua hace una gran entrevista con él aquí en la que John repasa los conceptos básicos de Emacs Lisp, el entorno de desarrollo, y brinda muchos buenos consejos.
Paso 2: Lea el OPC (Código de otras personas)
2a. Lee el código fuente
Debido a que Emacs es "el editor de visualización en tiempo real extensible, personalizable, autodocumentado", se incluye todo el código fuente. Aprenda a usar las funciones de ayuda, C-h f
para una función y C-h v
para una variable. Siempre hay un enlace al código fuente:
2b. Leer todos los init.el
's
Mucha gente rastrea sus init.el
archivos en Git o Mercurial. Búscalos. Un truco es hacer clic en el perfil de las personas en StackOverflow, especialmente emacs.stackexchange.com :
A menudo tienen enlaces a su sitio web personal o GitHub:
Repos llamados dotemacs
o dotfiles
son bastante comunes. Con el tiempo, tendrá una idea de cómo se ve el código bueno y cómo se ve el código malo. También aprenderá los grandes nombres, como los de Xah , Sasha Chua , binchen , Magnar Sveen , abo-abo y muchos más. ¡Hay tanta gente de la que aprender!
Paso 3: piratea Emacs
Ponte a prueba para escribir la funcionalidad que deseas. Nunca copie el código a ciegas; siempre tómate el tiempo para entenderlo. Si no lo entiendes, ¡no lo uses! Cuando se toma el tiempo de comprender un código, además de aprender algo nuevo, a menudo piensa en formas de mejorarlo para su caso de uso particular. Esta es una oportunidad para hackear! Después de todo, ¡para eso estás init.el
! Cometer errores, romper cosas, aprender a depurar. Descubrirá que debido a que Emacs está escrito en Elisp, el desarrollo es una delicia.
Paso 4: haga preguntas en emacs.stackexchange.com
Descubrí que la comunidad de Emacs en StackExchange ama una buena pregunta de Elisp. Por lo tanto, piratee con confianza de que otras personas apreciarán sus esfuerzos por aprender.
Paso 5: Responda preguntas en emacs.stackexchange.com
Nada aclara tu comprensión como tratar de explicar algo. Recorriendo la página principal, también encontrará respuestas a preguntas que nunca supo que tenía.
Conclusión
Con el tiempo, podrá generar soluciones más rápido y responder las preguntas de otras personas. Como toda programación, puede ser frustrante. Sin embargo, recuerda juzgarte hoy contra ti mismo ayer. ¡Algunas personas han estado pirateando Emacs durante, literalmente, 30 años! Sin embargo, la mayoría de las veces encontrará que trabajar con Emacs es un placer y la libertad que le brinda es inspiradora.
¡Feliz pirateo! :)
PD: Mira el paquete malvado .
1 Algunas instalaciones no vienen con él. Los usuarios de Debian, por ejemplo, deben instalarlo por separado. Es un poco tonto , pero se almacena en los repositorios no libres . Agregue un repositorio no gratuito al /etc/apt/sources.list
agregar non-free
al final de cada entrada:
deb http://http.us.debian.org/debian stable main contrib non-free
Recomiendo la "Introducción a Emacs Lisp".
La "Introducción a Emacs Lisp" ya puede estar disponible en formato de información dentro de sus Emacs. Probar
C-h i m Emacs Lisp Intro RET
o evaluar(info "(eintr) Top")
en Emacs.Si esto no funciona, busque en la web "Emacs Lisp Intro".
fuente
Comience con la página Wiki de Emacs Aprenda Emacs Lisp .
No es que esa página en sí te enseñe Emacs Lisp. En cambio, apuntará a recursos de aprendizaje : exactamente lo que está buscando aquí , con su pregunta. Muchos usuarios han contribuido y editado durante años. Eso presenta ventajas y desventajas en el blog de un usuario. La calidad de las sugerencias allí es, por supuesto, diversa, debido a la variedad de entradas.
Más allá de eso, todo lo que otros han dicho aquí, especialmente comenzando con el documento incorporado de Emacs:
El manual de Elisp: principalmente una referencia, pero también una buena guía de uso e información conceptual. Está integrado en Emacs:
C-h i
luego elija el manual de Elisp.La introducción de Emacs Lisp: introducción paso a paso a Lisp y Emacs Lisp. También integrado en Emacs y disponible desde
C-h i
.Como has usado Common Lisp, será muy fácil elegir Emacs Lisp. Considérate afortunado con esto.
Si hubiera utilizado Common Lisp (o Zeta Lisp o lo que sea) en una máquina Lisp, entonces la experiencia sería bastante similar. Puedes pensar en Emacs como (entre otras cosas), un gran entorno Lisp. Puede pasar de cero a 60 en poco tiempo, al aprender.
¡Que te diviertas!
fuente
Como actualización de Lisp, recomiendo los tres primeros capítulos de Peter Norvigs Paradigms of Artificial Intelligence Programming . Esos le brindan una (re) introducción excelente y rápida a Lisp que lo ayudará a retomar el camino rápidamente.
Para los novatos totales hay COMMON LISP: una introducción suave a la computación simbólica que te enseña los mismos conceptos pero a un ritmo mucho más bajo.
Ambos libros están disponibles en línea, de forma gratuita.
Después de pasar por uno de los anteriores, puede leer todas las publicaciones etiquetadas de Elisp en nullprogram.com y consultar la guía de lectura en masteringemacs.org . Para obtener información sobre las dificultades comunes, leer las principales preguntas aquí será de ayuda. Para problemas específicos, busque este sitio, rosettacode o su motor de búsqueda favorito.
Una vez que esté familiarizado con los conceptos básicos, los manuales de información generalmente responderán a la mayoría de las preguntas restantes que surjan al piratear Emacs.
fuente
Dado que tiene experiencia en Common Lisp y está "más allá de lo básico", no tiene sentido perderse en la "Introducción a la programación en Emacs Lisp".
Lo que puede hacer de inmediato (no tengo experiencia en CL y funcionó para mí) es:
1) encuentre un modo que use e intente agregar funciones, encontrará ayuda en la Referencia de Emacs Lisp
2) escriba su propio archivo personalizado con sus propias funciones simples, aquí nuevamente use la Referencia de Emacs Lisp
La lista help-gnu-emacs es extremadamente útil.
fuente
Realmente no creo que necesites leer algo específico en emacs lisp. No es ningún secreto que si quieres hacer algo en Emacs, lo más probable es que solo tengas que encontrar el comando correcto o alguien ya ha escrito el código y ahora reside en algún lugar de una página wiki, o github, o se convirtió en un complemento . Simplemente copiando y pegando ese código y leyéndolo , habrá aprendido una buena parte de Emacs lisp cuando esté satisfecho con sus .emacs.
Si desea obtener algunas ideas sobre cómo personalizar Emacs, las configuraciones personalizadas de otras personas pueden ser una buena fuente de sabiduría. Puede encontrar una lista seleccionada de tales configuraciones aquí . Sin embargo, en realidad, tener su propia visión funciona mejor y visitar los .emacs de otras personas generalmente está garantizado solo cuando desea que se respondan algunas preguntas [por ejemplo, ¿cómo estructuro mi código / paquetes?] O algún código copiado para algún objetivo específico suyo.
Navegar por MELPA me hizo instalar e intentar una docena de paquetes.
Si va a desarrollar un complemento, descubrí que leer el código de algún complemento particular de su agrado puede ayudarlo a comenzar con bastante rapidez.
Desde que usas vi, mira el modo malvado , me ha funcionado muy bien. También recomendaría timón con el comando
helm-apropos
(o simplementeapropos
si no lo deseahelm
) para facilitar su viaje.Por lo tanto, mi consejo es llegar al punto de personalización de inmediato y aprenderá todo lo que necesita sobre la marcha. Especialmente que hackeaste lisp antes, hace mucho tiempo o no, y porque aprender elisp es, por lo que puedo decir, un medio para un fin para ti, que es personalizar emacs.
fuente
La pista de Elisp sobre exercism.io también es una forma divertida de mejorar tus habilidades. Los ejercicios se centran más en elisp que en Emacs, pero cubrirán una buena variedad de conceptos básicos como expresiones regulares, estructuras de datos, matemáticas, etc.
fuente
Me parece que la respuesta de Loren Ipsum lo cubre bastante bien.
https://emacs.stackexchange.com/a/47320/21433
Simplemente agregaría que estoy asumiendo que conoces los conceptos básicos de Lisp. Eso te ayudaría, pero no es necesario (volveré sobre eso).
Una forma de aprender es simplemente piratear o modificar un modo / extensión existente. Lo aprendí en el 93 pirateando el archivo de modo de idioma Ada. Fue una de las experiencias más divertidas que tuve en la universidad.
Por lo tanto, puede hacerlo con un idioma de su elección, por ejemplo, un modo Java o un modo Lisp, o incluso un archivo de modo Elisp.
Cámbielo, agregue macros, etc. Así es como lo hice.
fuente