GNU Emacs: Ortografía «al vuelo» con flyspell

emacs

Esta receta explica cómo usar las utilidades de comprobación de ortografía «mientras escribe» que trae GNU Emacs en su distribución oficial. Por mucho que insistas, no tienes excusa para escribir mal.

El modo flyspell

flyspell básicamente resalta y colorea los errores ortográficos detectados en el buffer actual. Las dos órdenes básicas son:

  • flyspell-buffer recorre el buffer actual completo, resaltando todos los errores ortográficos que encuentra, pero no detectará errores debidos a modificaciones posteriores.
  • flyspell-mode activa un minor mode interactivo que resalta los errores conforme se va escribiendo el texto. Sin embargo no analiza el texto escrito de antemano, a menos que el cursor pase por encima.

Ambas órdenes se ejecutan de la forma habitual:

M-x flyspell-mode

Diccionarios

flyspell no depende del idioma, sólo del diccionario. Así que lo único que tienes que hacer es elegir el tuyo, del mismo modo que para el resto de las utilidades de idioma de emacs, es decir:

M-x ispell-change-dictionary

Para español utiliza el diccionario castellano, el diccionario castellano8 te dará problemas con las palabras acentuadas si utilizas encodings UTF-8, latin-1 o similar. Puedes fijar el diccionario por defecto para flyspell con:

M-x customize-variable
flyspell-default-dictionary

o en el .emacs con:

(flyspell-default-dictionary "castellano")

Elegir el diccionario en cada fichero

Si escribes habitualmente en más de un idioma, es bastante latazo tener que estar cambiando el diccionario activo para que corresponda con el fichero que estás editando. Es ese caso, lo más cómodo es definir una variable de fichero que se aplicará únicamente a ese fichero concreto en el momento de cargarlo.

Por ejemplo, para un documento LaTeX en inglés, escribe lo siguiente al final del texto:

%%% Local Variables:
%%%   mode: latex
%%%   mode: flyspell
%%%   ispell-local-dictionary: "american"
%%% End:

Activación automática

Como casi cualquier minor mode, puedes hacer que emacs lo cargue automáticamente cuando edites ciertos tipos de ficheros. Por ejemplo, si quieres que se cargue flyspell siempre que abras un fichero LaTeX, incluye lo siguiente en tu .emacs:

(add-hook 'LaTeX-mode-hook 'flyspell-mode)

Correcciones

Para corregir un herror (resaltado en rojo), simplemente pulsa el botón central del ratón sobre la palabra y aparecerá un lista con las alternativas más probables; elige una soltando el botón y la substituirá. Como suele ser habitual en estos casos, también puedes añadir la palabra a tu diccionario personal o aceptar la palabra sólo para este fichero.

Si la palabra aparece marcada en amarillo significa que ese mismo error ya ha sido marcado más arriba. También aparecen marcadas en amarillo las palabras palabras repetidas.

Ortografía para programadores

Si no eres de los que buscan burdas excusas para saltarse las normas ortográficas, flyspell puede ayudarte incluso cuando escribes programas. Con la siguiente orden, sólo se comprobará la ortografía de los comentarios, pero no de las palabras reservadas del lenguaje ni de los nombres de variables::

M-x flyspell-prog-mode

Autodetección del idioma

Hay un par de paquetes emacs (no estándar) que cargan automáticamente el diccionario que corresponda utilizando el atributo xml:lang en los fichero XML o el la opción babel en ficheros LaTeX. Si te interesa tendrás que instalarlos por tu cuenta.

Referencias

Próxima entrega

La próxima semana veremos cómo utilizar la edición rectangular, una característica muy interesante que puede ahorrar mucho tiempo, también a los programadores.