Tengo la costumbre de ir metiendo todos mis proyectos en un directorio con ese nombre dentro de mi directorio home . Es decir, voy a crear un directorio de proyecto que me sirva para trabajar programando. Obvio aquí toda la configuración de git o cualquier otra herramienta de programación que se utilice de manera externa al propio Emacs. El resultado final es crear un fichero que se llamará ~/proyectos/datos-mode/datos-mode.el

Para que lo cargue Emacs cuando arranque, debemos definir algunas cosas en el fichero init.el :

;; Configuración de prueba de creación de datos-mode (add-to-list 'load-path "~/proyectos/datos-mode") (require 'datos-mode)

He añadido básicamente dos instrucciones: la primera añade a la lista de paths el lugar donde guardo el fichero; la segunda solicita cargar el modo datos-mode . Bien, muy bonito, pero de momento carga en vacío. ¿Qué código tengo que meter en el fichero datos-mode para que funcione?

De momento, cargo el siguiente código, que me sirve como plantilla de modos:

;; Definición del modo menor (define-minor-mode datos-mode "Toggle Datos mode. Interactivamente sin argumento, este comando des/activa el modo." ;; El valor inicial. nil ;; Indicador de modo en la línea. " Datos") ;; Informa que este fichero proporciona el modo datos-mode (provide 'datos-mode)

La primera forma, define-minor-mode , es la que crea el modo. Sin entrar en todas las opciones que soporta, de momento vemos que le decimos que comience desactivado con nil y que el nombre que aparecerá en la línea de estado será " Datos" . Hay que remarcar el espacio inicial para que no se pegue al modo que se liste antes.

La segunda forma, provide , es el espejo del require que hemos puesto en el init.el , le informa a Emacs que el modo requerido en la configuración lo proporciona nuestro fichero o paquete.

Podemos mejorarlo si en lugar de utilizar el modo posicional, utilizamos los nombres de los argumentos: