arco-devel, el paquete

emacsArco
ATENCIÓN: Esta receta está OBSOLETA. Ver emacs-pills

arco-devel es un paquete Debian que contiene principalmente ficheros de configuración y scripts pensados para facilitar la vida al personal técnico del grupo Arco, pero como son cosas muy genéricas, creo que quizá a alguno de los que frecuentáis CRySoL os puedan resultar útiles.

Contenido

Pongo aquí a modo de resumen qué cosas se pueden encontrar en el paquete y también para que os podáis hacer una idea del tipo de cosas que tenemos pensado empaquetar

Yasnippets

Los yasnippets son un tipo de macros para emacs. Son potentes y fáciles de hacer. Con el paquete yasnippet viene un buen montón de estas macros. Nosotros hemos añadido algunas que nos parecen útiles:

  • python-head. introduce la cabecera típica de los scripts python simplemente escribiendo “!py<TAB>”. Debe estar activado python-mode. La cabecera de la que hablo es:
    #!/usr/bin/python
    # -*- mode:python; coding:utf-8 -*-
  • flyspell-vars. Pone un bloque de variables de fichero para pedir que se active la ortografía al vuelo (flyspell). Solo hay que escribir “spell<TAB>” y te añade lo siguiente (pudiendo elegir interactivamente el tipo de comentario y el diccionario).
    # Local Variables:
    #  coding: utf-8
    #  mode: flyspell
    #  ispell-local-dictionary: "castellano8"
    # End:
  • documentclass. Crea un documento LaTeX mínimo con la configuración habitual para castellano. Se activa con “documentclass<TAB>” y genera:
    % -*- coding: utf-8 -*-
    \documentclass[a4paper, 11pt]{article}
     
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[spanish]{babel}
    \usepackage{times}
     
    \title{}
     
    \begin{document}
    \maketitle
     
    \end{document}
  • shebang: Incluye el shebang elegido al introducir la cadena “!<TAB>”

Configuración modular para GNU Emacs

ATENCIÓN: Lo que se explica a continuación está ahora en el paquete emacs-pills disponible en https://bitbucket.org/arco_group/emacs-pills

Una vez instalado el paquete puedes ver que en /usr/share/arco/emacs hay unos cuantos ficheros .elc. Son ficheros «elisp» byte-compilados que contienen simplemente instrucciones de configuración para emacs (lo que normalmente pones en el .emacs) pero troceado:

  • auto-insert: Contenido por defecto que se inserta automáticamente al crear ficheros nuevos (ver receta).
  • develock: Configuración para el modo develock con colores no-epilépticos.
  • develock-py: Configuración de develock para python-mode (que no lo soporta por defecto).
  • maximize: Dos combinaciones de teclas para maximizar emacs a pantalla completa (F11) o solo verticalmente (C-F11).
  • paren-autoclose: Provoca que las expresiones «pareadas», es decir, paréntesis, llaves, corchetes, comillas simples y dobles, etc. se cierren automáticamente al escribir la de apertura. Esta «feature» solivianta muchos ánimos. Usar con precaución Sticking out tongue.
  • psgml: Configuración básica del paquete psgml para disponer de coloreado de sintaxis y completion basada en el DTD.
  • speedbar: Configuración básica para speedbar.
  • strip: Contiene la configuración para el paquete whitespace de modo que al salvar un fichero automáticamente se eliminan espacios sobrantes al final de las líneas y lineas en blanco al final y al principio del fichero. Muy útil para evitar que cambios (que realmente no lo son) hagan creer al control de versiones que es necesario actualizar el fichero.
  • tabbar: Una configuración sencilla y muy productiva para el paquete tabbar. Clasifica en tres tipos de ficheros: normales, de control y del modo «dired». Para cambiar entre tipos usa C-Shift-arriba y C-S-abajo. Para cambiar entre ficheros de un mismo tipo usa: C-S-izquierda y C-S-derecha. Muy muy útil.
  • uniquify: Configuración para el modo uniquify. Hace que ficheros con el mismo nombre en directorios distintos se distingan por el nombre del directorio en lugar de por un número, como ocurre por defecto.
  • zoom: Si te gusta cambiar el tamaño de la fuente con C-+ y C—, o con C-rueda y restaurar el tamaño con C-0… todo eso lo tienes cargando esta configuración. No importa nada nuevo, solo define keybindings.

Para utilizar estas configuraciones escribe lo siguiente en tu .emacs:

(add-to-list 'load-path "/usr/share/arco/emacs")
(load "tabbar.cfg")
(load "maximize.cfg")

Y así para cada uno de los ficheros que quieras usar.

devel.sh

Se supone que es un fichero que tendrá alias y funciones bash varias. Ahora mismo solo tiene una, pero acabamos de empezar:

  • fexec: Ejecuta el comando indicado y queda a la espera. Cuando algún fichero cambie, ejecuta de nuevo el comando de forma automática. Esto es posible gracias al comando inotifywait.
  • fmake: Es un alias para ejecutar fexec(make). Es decir, sirve para recompilar un programa o documento en cuanto cambia un fichero del directorio o subdirectorios.

Para usarlo incluye lo siguiente en tu .bashrc:

source /usr/share/arco/devel.sh

Makefiles

Son ficheros .mk, es decir, fragmentos de Makefile útiles para utilizar en los tuyos:

  • flymake-c.mk: contiene una regla check-syntax para utilizar el paquete flymake de Emacs con código C. Flymake comprueba un fichero C o C++ mientras lo escribes y añade información visual sobre errores sin necesidad que que tengas que ejecutar explícitamente el compilador. Muy útil aunque requiere configuración específica para cada lenguaje.

Para utilizar estos ficheros en tus Makefile escribe:

include /usr/share/arco/flymake-c.mk

Instalación de arco-devel

Añade lo siguiente a tu /etc/apt/sources.list:

Y después el habitual:

# aptitude update
# aptitude install arco-devel

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de david.villa

mec

La documentación sobre los ficheros de configuración «modulares» de emacs se mantiene en:
https://bitbucket.org/arco_group/emacs-pills

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Imagen de brue

Os falta...

Os falta al menos una dependencia:

emacs-goodies-el

brue

Imagen de cleto

Fixed

Arreglado en la versión 0.55-2 del paquete.

Gracias, Sergio.

Imagen de Lk2

flyspell-vars

El yasnippet “spell“ se completa utilizando como caracteres de comentario ;; en lugar del comentario para el modo actual. Es decir, que aunque estemos en python-mode los caracteres iniciales son ;; en lugar de # como aparece en el ejemplo.

¡Saludos!

Imagen de david.villa

variables

Yasnippet soporta variables. Cuando insertas la macro, el cursor se queda en el primer “;;”, escribe en ese momento el carácter que quieras, después pulsa [TAB] para la siguiente variable, que te permite elegir el diccionario de una lista. No sé cómo hacer que coja automáticamente el comentario del modo actual. Si sabes cómo hacerlo porfa deja comentario.

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Imagen de Lk2

Muy rico

Se te ha olvidado el Yasnippet del documento LaTeX (documentclass).

Por lo demás, muchas cosas útiles... a ver si me termino de acostumbrar con esto a Yasnippet