Ago 11

Ispell, flyspell y abbrev

Tag: basicoverdrive @ 3:59 pm

Emacs incluye ispell para la corrección automática de texto. Cada diccionario es guardado en el fichero .ispell_<lenguaje> donde lenguaje es cualquier lenguaje, que por defecto es english.

Para instalar los diccionarios e ispell (si es que no se tiene ya) desde gentoo podemos instalarlo haciendo:

# emerge aspell aspell-en aspell-es

O bien si utilizamos debian podemos hacer:

# apt-get install aspell aspell-en aspell-es

Con esto instalaremos los diccionarios en inglés y castellano, aunque hay muchos otros, disponibles en la web oficial de aspell.

Para lanzar ispell tan sólo debemos invocarlo mediante M-x ispell-buffer. Esto nos resaltará la palabra y nos mostrará las posibles alternativas, las cuales son:

  • un número o letra en las opciones mostradas : cambiar la palabra mediante el índice asociado a cada palabra.
  • ? : para más opciones.
  • SPC (espacio) : para no modificar dicha palabra.
  • u : convertir la palabra en minúsculas.
  • i : saltar a la siguiente palabra no conocida.
  • r : reemplazar la palabra.
  • R : reemplazar las palabras usando query-replace.
  • a : aceptar la palabra para el resto de la sesión para todos los buffers (y por lo tanto no volver a resaltarla como inválida).
  • A : aceptar la palabra para el resto de la sesión para este buffer (y por lo tanto no volver a resaltarla como inválida).
  • C-r : edición recursiva.
  • C-M-c : salir de la edición recursiva.
  • ! : reemplazar todas las ocurrencias después de haber presionado R (evitar el query del replace).

Para analizar una sola palabra y no todo el buffer tan sólo debemos pulsar M-$ el cual tiene el comando asociado ispell-word. Si en cambio queremos completar una palabra podemos usar el comando M-tab que tiene el comando asociado ispell-complete-word.

Además de ispell, tenemos flyspell, que tiene el mismo efecto que ispell, pero este se realiza en tiempo real, a medida que vamos escribiendo cualquier palabra ‘on the fly’. Para lanzar flyspell tan sólo debemos invocarlo mediante M-x flyspell-mode. Existe otro modo el cual se invoca mediante M-x flyspell-prog-mode diseñado para programadores. En este modo podremos hacer que flyspell analice texto en nuestro código fuente pero sólo para el código comentado o cadenas.
Otra alternativa es usar M-x flyspell-buffer para lanzar flyspell sobre el buffer actual, el cual nos resaltará las palabras que no encuentre o reconozca en nuestro diccionario.

Resumiendo los comandos que podemos realizar con ispell y flyspell:

  • M-$ : ‘ispell-word‘; analiza la palabra sobre el cursor.
  • (sin keystroke asociada) : ‘ispell-region‘; analiza una región.
  • (sin keystroke asociada) : ‘ispell-buffer‘; analiza un buffer.
  • (sin keystroke asociada) : ‘ispell-message‘; analiza el cuerpo de un mail.
  • (sin keystroke asociada) : ‘ispell-comments-and-strings‘; analiza los comentarios y cadenas en el código de un programa.
  • (sin keystroke asociada) : ‘ispell-continue‘; continua ispell desde la última vez que se finalizó con C-g.
  • (sin keystroke asociada) : ‘ispell-kill-ispell‘; finaliza el proceso de análisis.
  • M-TAB : ‘ispell-complete-word‘; imprime las posibles opciones para la palabra actual.
  • (sin keystroke asociada) : ‘flyspell-mode‘; analiza el texto en tiempo real (on the fly).
  • (sin keystroke asociada) : ‘flyspell-buffer‘; analiza el texto en tiempo real para dicho buffer.

Si queremos activar flyspell por defecto podemos añadir en nuestro .emacs la línea:

(setq-default flyspell-mode t)

Por ultimo podemos usar abbrev para completar palabras técnicas, para ello podemos usar M-/ para dabbrev-expand y emacs completará la palabra a la mas cercana. Para entrar en el modo abreviado tan sólo debemos lanzar M-x abbrev-mode. Emacs guarda las abreviaturas en el fichero .abbrev_defs.

  • Añadir abreviaturas: debemos entrar en el modo citado anteriormente y pulsar C-x a i g para añadir abreviaciones globales add-inverse-global o C-x a i l para añadir abreviaciones locales add-inverse-local.
  • Para cargar el fichero de abreviaturas por defecto: y estar en dicho modo podemos añadir éstas líneas en nuestro .emacs:

(setq-default abbrev-mode t)
(read-abbrev-file «~/.abbrev_defs»)
(setq save-abbrevs t)

  • Eliminar abreviaturas: Si lo que queremos es eliminar una abreviatura debemos pulsar M-x edit-abbrevs. Debemos eliminar líneas completas con C-k o similar, no debemos editar o añadir líneas ya que Emacs mantiene su propio formato. Para guardar los cambios despues de eliminar líneas debemos usar M-x write-abbrev-file.
  • Listar abreviaturas: Si lo que queremos en cambio es listar pero no editar abreviaturas podemos lanzar el comando M-x list-abbrevs.
  • Deshabilitar abreviaturas: Debemos pulsar M-x kill-all-abbrevs o bien M-x read-abbrev-file y eliminar la línea deseada.
  • Cancelar la última abreviatura: Debemos pulsar M-x unexpand-abbrev.

One Response to “Ispell, flyspell y abbrev”

  1. Corrector de català mentre escrivim a l’Emacs « Cròniques d'un Nyu i un Pingüí says:

    […] Wikiemacs Article a Crysol Ispell, flyspell y abbrev Explicació de Javier […]

Leave a Reply

You must be logged in to post a comment.