jueves, 12 de febrero de 2009

HAL y mis escritos

Nuestras charlas con HAL se van haciendo cada vez más difíciles. La conversación va enriqueciéndose, y hemos pasado de plantearle tímidas preguntas ---y quedarnos largo rato embobados tratando de entender sus respuestas--- a ser nosotros los que, émulos suyos, pergeñamos discursos enormes y herméticos ante su faz imperturbable.

Pero HAL parece querer vengarse de nuestra incipiente prodigalidad verbal y al más mínimo error en nuestra cháchara ---un espacio ausente, una letra fatalmente cambiada--- nos espeta una de sus consabidas arengas gramaticales. Y a ver quién se atreve ahora a tejer de nuevo la larga retahíla con el corazón en un puño y los dedos temblorosos bajo la amenaza de otra posible amonestación por debilidad sintáctica o tipográfica.

Es inaceptable seguir así. Hay que buscar un modo de volver cuanto antes al diálogo pacífico, acabar con este desigual combate dialéctico al que parecemos estar abocados sin remedio.

La mejor artimaña de que disponemos es utilizar los propios trucos de HAL. Sabemos que HAL nos responde con respuestas en parte preparadas de antemano ---por eso juega con ventaja, el muy trapacero. Pero su ventaja se desvanece si nosotros mismos reclamamos nuestro derecho a preparar nuestras propias intervenciones, si las escribimos en algún sitio, las vamos puliendo y purificando de errores y hacemos luego que HAL las lea de allí cuando queramos, sin necesidad de tener que volver a escribir el mismo discurso una y otra vez.

No es nuevo eso de hacer leer a HAL de un lugar distinto al del torrente incesante que atraviesa la línea de órdenes. Pero hasta ahora sólo hemos trabado conocimiento con un rudimentario sistema acústico de ecos para poder escribir con calma en un sitio apartado del fragor de la corriente. Es preciso hacerse con una herramienta adecuada y más versátil.

Naturalmente esta herramienta no puede ser otra que un editor de texto. Pero como no queremos de ninguna manera abandonar el mundo puramente textual de la consola lo que realmente necesitamos es un editor de texto que funcione en modo puramente textual.

A buen seguro nuestro HAL tiene instalados varios y hay otros muchos que no lo están. ¿Por qué no preguntárselo? Podemos probar con aptitude search y buscar aquellos pertenecientes a la sección de editores (editors) y, de entre ellos, aquellos que funcionan en modo texto (text mode) [ver aquí para refrescar la memoria sobre aptitude search].

Los paquetes de sistemas basados en Debian se suelen clasificar también por secciones (sections). Para buscar con aptitude search un paquete dentro de una sección determinada se usa el patrón:

?section(nombre_sección)

o, en versión, abreviada:

~snombre_sección

Nuestra pregunta concreta debería realizarse, pues, de la siguiente forma:

aptitude search '~seditors ~Gtext-mode'

La respuesta es bastante larga, mi HAL me muestra 66 paquetes. De entre estos, se suelen instalar por defecto unos cuantos, los que los distribuidores han considerado de una prioridad (priority) importante (important). Para refinar nuestra pregunta y ceñirla a este nivel de prioridad podemos usar el patrón:

?priority(important)

O en versión breve:

~pimportant

Es decir:

aptitude search '~seditors ~Gtext-mode ~pimportant'

Que devuelve sólo 4 paquetes, todos ellos instalados:

i ed - El clásico editor de líneas de unix
i nano - clon libre de Pico con algunas nuevas características
i vim-common - Vi Mejorado, archivos comunes
i vim-tiny - «Vi IMproved», editor vi mejorado. Versión compacta


De los no instalados faltan algunos clásicos, particularmente GNU Emacs (y sus variantes). También falta la versión completa de Vim (y otras variantes de Vi), por no hablar de otros editores interesantes sobre los que el lector puede investigar por su cuenta mediante aptitude show.

Cualquiera de estas herramientas nos puede servir para llevar a cabo nuestra proyectada función de edición de textos.

El autor usó GNU Emacs durante bastante tiempo y ahora, desde hace también bastante, exclusivamente Vim. Ambos editores son extraordinariamente potentes y, aunque su complejidad puede llegar a ser muy grande, un neófito con ganas puede atreverse con ellos si empieza por ceñirse a las funciones básicas de edición. Si por el autor fuese, la recomendación sería sin duda Vim, aunque aceptaría de buena gana una elección como Emacs. No obstante, el principiante que no quiera detenerse en este punto puede sentirse más cómodo de momento con nano, en cuya pantalla aparece siempre por defecto una leyenda con la función de las teclas de control más comunes en las tareas de edición. (Por ejemplo, la combinación '^X', que aparece en ese leyenda, significa pulsar a la vez las teclas Ctrl y X, y su efecto es salir del programa).

La intención del autor era explicar ahora los rudimentos de Vim, pero le hemos convencido para que lo posponga y podamos seguir el transcurso de nuestras conversaciones sin pasar en este momento por un interludio que quizá sería demasiado largo. Si, a pesar de todo, el lector quiere investigar por su cuenta alguno de los editores citados y no instalados por defecto, ya sabe que puede hacerlo mediante aptitude install. Por ejemplo, la siguiente orden instala Vim y GNU Emacs (y el resto de paquetes que estos dos supereditores requieren para funcionar):

aptitude install vim emacs

Si el lector realiza este paso y se empeña en seguir la recomendación inicial del autor, es decir, ponerse a trabajar directamente con Vim, un par de recomendaciones más pueden ser útiles:

  • Ejecute cuanto antes vimtutor y complete las lecciones que aparecen allí.

  • Instale el paquete nethack y pase un rato de diversión mientras practica el movimiento del cursor con las teclas h, k, j y l, que son las teclas que hay que usar con Vi para mover el cursor. (Y que a nadie se le ocurra utilizar las flechas en lugar de estas teclas, se perdería mucho de la rapidez de escritura que proporciona Vim).



Resumen

  • La herramienta de elección para editar texto con HAL es un editor para la consola.

  • Los paquetes de sistemas basados en Debian se categorizan, entre otras cosas, por secciones. Para que aptitude search busque paquetes dentro de una sección determinada, se utiliza el patrón ~s, seguido del nombre de sección.

  • Los paquetes de sistemas basados en Debian se clasifican de acuerdo a su nivel de prioridad. Por ejemplo, importante (important) es uno de los niveles de prioridad posibles. Para que aptitude search busque paquetes según su prioridad se utiliza el patrón ~p, seguido del nivel de prioridad.

  • Editores comunes de consola son, por ejemplo, Nano, recomendable para principiantes, y los supereditores Vim y GNU Emacs.

No hay comentarios:

Publicar un comentario