Informo que yo no soy un experto de Emacs Lisp (llamado normalmente Elisp) yo como usuario de Emacs he usado Elisp para configurar mi editor y crear un plugin de uso principalmente personal para mi propio flujo organizativo, pero enseñare algunas cosas
Cosas basicas antes de empezar
En primer lugar vamos a mostrar un poco como es la sintaxis de Elisp para que os hagais una idea de que os vais a encontrar
(message "Hola mundo")
Tambien se puede usar la sentencia (print "Hola")
y tambien puede imprimir texto
Este es un codigo simple que nos muestra la palabra hola mundo, vamos a verficarlo por suerte para nosotros Emacs es en esencia un interprete de Lisp con la funcionalidad para editar texto por lo que podemos correr un archivo con codigo Elisp usando el comando emacs --script nombre.el
pero desde emacs tenemos una shell llamada eshell que permite ejecutar codigo elisp por si mismo, esta eshell tambien permite usar comandos como ls, echo, y demás.
Como podeis ver ene el ejemplo anterior usamos la funcion message que es para mostrar texto cosa que normalmente se hace en la barra para mensajes del buffer como podeis ver a continuacion
Como podeis ver al ejecutar el codigo Elisp mediante eshell tambien nos aparece en la seccion de mensajes del buffer cosa de la que ya hablaremos.
Aqui un ejemplo de como se correria codigo elisp, desde un archivo:
Vale ahora que sabemos que podemos imprimir texto usando la sentencia (message "Hola")
y el string del texto, pero si tratamos de hacer lo mismo con un numero vemos que da error
Al parecer message solo sirve si tenemos el numero como un string, con comillas
Operaciones aritmeticas
Vale ahora vamos a ver otra de las partes de Elisp que es más interesante a mi parecer y es las operaciones aritmeticas, a diferencia de lenguajes como Python, las operaciones aritmeticas en los lenguajes tipo Lisp son usando la Notación Polaca, que quiere decir esto pues quiere decir en esencia que el operador es decir signos como el de sumar, dividir, multiplicar o restar van al principio de la operacion aqui un ejemplo de notación polaca: + 23 45 eso seria 23 + 45, vamos a ver el resultado en Elisp
Como podemos ver aqui el resultado es 68, cosa que puedes averiguar sumandolo tu mismo, y esto mismo aplica a las multiplicaciones o divisiones
Variables
Ahora veremos como tratar con las variables cosa que es un poco curiosa de hacer ya que aqui hay varias formas de hacerlo dependiendo del caso.
Cuando declaramos la variable por primera vez en el codigo solemos usar defvar (defvar union "hola")
.
Cuando la variable ya ha sido declarada y tiene un valor solemos usar setq para cambiar ese valor (setq union 3)
Muy bien todo eso es muy interesante pero ahora como muestro esa informacion en pantalla pues muy facil eso se hace de la siguiente manera
Como podeis ver declaramos la variable en la funcion message y yo puse el siguiente “%s” eso lo que hace es que la variable se muestre cuando añadimos algo propio a la funcion message. Ejemplo:
Pero si la variable esta sola podemos simplemente usar message y el nombre de la variable de la siguiente manera:
Ahora vamos a analizar setq
Como podeis ver declaramos la variable con defvar
y luego cambiamos el valor a un numero con setq
ya que como podeis ver la funcion message arroja el mismo fallo que al mostrar numeros, si quereis que muestre el numero solo teneis que añadir “%s” tal y como vimos antes para cuando la variable tiene su propio texto y lo mostrara ya que lo tratara como un string ya que podria decirse que la funcion message pasaria el valor de la variable por ese string, al menos esa seria una manera facilmente entendible de explicarlo
Bueno con eso esta primera parte se acaba, os lo recuerdo no soy un experto pero si se mis cositas en la proxima entrega veremos como solicitar input al usuario y como insertar texto en un archivo usando elisp. Tambien puedes usar setq para declarar una variable por primera vez pero normalmente se usa defvar