Cuaderno de GNUtas

Goldendict, Perseus Hopper (y Emacs)

Clientes de diccionarios hay unos cuantos para GNU / Linux. Pero de los que he ido probando, el que prefiero sin dudar es Goldendict, por su potencia y versatilidad. Está escrito en Qt y se puede descargar fácilmente de las distribuciones más conocidas.

Por ejemplo, en Arch Linux e hijas:

sudo pacman -S goldendict

En Fedora:

sudo dnf install goldendict

Y en Debian, hijas, nietas y biznietas:

sudo apt install goldendict

Con Goldendict podemos lanzar busquedas en una amplísima variedad de diccionarios, tanto on line como almacenados en nuestro disco duro. No simplemente diccionarios de texto, sino también con contenido multimedia como audio o vídeo. En la página de GitHub que alberga el proyecto se puede consultar una lista detallada de todos los formatos admitidos. En el menú Editar / Diccionarios de la aplicación podemos almacenar y configurar los diccionarios que usemos, tanto en red como locales, así como crear grupos de dicconarios o desactivar o activar los que se nos antojen. Hay que tener en cuenta que, cada vez que Goldendict ejecuta una búsqueda, lo hace con todos los diccionarios que tenga activos, lo que en ocasiones puede ser innecesario, además de consumir más recursos y ralentizar el proceso.

Cuando abrimos el programa, éste empieza a correr en segundo plano, dejando un icono en la bandeja del sistema. Si copiamos una palabra y pulsamos a continuación la secuencia CONTR + c + c, se abre al instante una ventana emergente mostrando los resultados de la búsqueda en los diccionarios activos. Es el comportamiento por defecto, pero el atajo de teclas se puede cambiar sin problemas. De hecho, yo lo cambié por la secuencia Windows + c, pues la que trae de fábrica interfiere con un atajo habitual de Emacs. Los atajos se cambian en el menú Editar / Preferencias / Teclas de Acceso Rápido; una vez allí, basta con pulsar nuestra nueva secuencia en el cuadro correspondiente.

Podemos también buscar en Goldendict desde la terminal, mediante el comando

goldendict <término a buscar>

Y, si usamos Xfce, podemos definir con ese comando una acción de búsqueda en el menú Whisker.

La búsqueda mediante la ventana emergente lanzada por atajo de teclado, no obstante, es la más habitual y rápida. Pero aún podemos volverla más ágil, si activamos la opción (por ejemplo, desde el menú contextual del icono en la bandeja de sistema) «Ventana Emergente de Búsqueda». Si hacemos esto, la ventana emergente saltará con sólo señalar la palabra en cualquier texto. Claro que tanta agilidad puede llevarnos más de una vez a tener falsos positivos. Pero podemos evitar esto yendo al menú Editar / Preferencias / Ventana Emergente de Búsqueda para marcar un par de opciones de la forma que muestro en la imagen que sigue, a fin de que la ventana emergente sólo se muestre si pulso la tecla «Mayúsculas» justo despues de señalar la palabra (se puede modificar al gusto de cada cual el tiempo a que equivale en segundos ese «justo después»). De esta forma, si señalo un pasaje en un texto, pero no pulso después la tecla «Mayúsculas», no se me abre la ventana de Goldendict para incordiarme.

goldendict1.png

Para los de Clásicas: cómo usar Goldendict con el Liddell-Scott de Perseus Hopper

El proyecto Perseus (para quien no haya oído hablar de él) es una ciclópea biblioteca digital desarrollada bajo el auspicio de la Universidad de Tufts, junto a otras instituciones más, y que está dirigido a estudiosos y estudiantes de las literaturas clásicas, especialmente de los textos en griego antiguo y latín. Más que un simple portal web, se trata de un software o colección de software cuyo fin no sólo es el de almacenar textos, sino también bases de datos morfológicas, bibliografías, recursos varios y un largo etcétera de aplicaciones. El nombre técnico de la última versión (la 4.0) es el de Hopper, a lo que cabría añadir la gran noticia de que se trata de software libre bajo licencia GPL. Es decir, podemos descargar sus fuentes para compilarlas e instalarlas en nuestro ordenador como servidor local. Eso sí, el proceso de instalación no se presume nada trivial, aunque tengo pendiente montarme algún día un servidor de Perseus Hopper en mi Raspberry Pi. Entre tanto, habrá que conformarse con la versión web. La cual, por otra parte, funciona a las mil maravillas.

Uno de los grandes atractivos del Hopper es que incluye un motor de búsqueda para el diccionario de griego Liddell-Scott. El término a buscar, además, puede hacerse por formas flexionadas (casos, número, género, persona, tiempo, modo, etc), lo que lo convierte en una herramienta muy útil para estudiantes de griego antiguo. ¿Podemos añadir este motor de búsqueda a nuestro Goldendict y así aprovecharnos de su agilidad y rapidez? Rotundamente, sí. Basta con que acudamos al menú de Goldendict Editar/Diccionarios, y en la pestaña Fuentes/Sitios Web añadamos la siguiente dirección, tal como aquí se escribe:

http://www.perseus.tufts.edu/hopper/morph?l=%GDWORD%&la=greek

Para los de Emacs: un truquillo con las búsquedas

Si usamos Goldendict desde nuestro querido GNU Emacs, podemos también beneficiarnos de la ventana emergente que se describió más arriba, pero de una forma aún más cómoda y sin levantar las manos del teclado. Es decir, el genuino estilo Emacs. Necesitamos, primero, hacer que Emacs nos señale la palabra donde tenemos el cursor (recordemos que aquí la gracia estriba en que no queremos usar el ratón); y, segundo, asignarle a esa acción un atajo de teclado.

Para lo primero, podemos incluir en nuestro archivo ~/.emacs estas líneas de código sugeridas en la Wiki de Emacs

;; para marcar una palabra completa
;; tomado de https://www.emacswiki.org/emacs/MarkCommands

(defun my-mark-current-word (&optional arg allow-extend)
    "Put point at beginning of current word, set mark at end."
    (interactive "p\np")
    (setq arg (if arg arg 1))
    (if (and allow-extend
             (or (and (eq last-command this-command) (mark t))
                 (region-active-p)))
        (set-mark
         (save-excursion
           (when (< (mark) (point))
             (setq arg (- arg)))
           (goto-char (mark))
           (forward-word arg)
           (point)))
      (let ((wbounds (bounds-of-thing-at-point 'word)))
        (unless (consp wbounds)
          (error "No word at point"))
        (if (>= arg 0)
            (goto-char (car wbounds))
          (goto-char (cdr wbounds)))
        (push-mark (save-excursion
                     (forward-word arg)
                     (point)))
        (activate-mark))))

Lo segundo, es decir, asignarle un atajo a la función ya definida con el nombre my-mark-current-word (o con cualquier otro que nos apetezca usar), no es que sea complicado. El problema (como suele ser habitual en Emacs) es encontrar un atajo o combinación de teclas que esté «libre». Yo he optado por la secuencia M-+ (es decir, la tecla Meta/Alt con el signo «+»):

(global-set-key (kbd "M-+") 'my-mark-current-word)

Reiniciamos Emacs (o recargamos el archivo de inicio) y, a partir de ahora, si tenemos el cursor en una palabra y tecleamos la tecla Meta/Alt con el signo «+», la palabra nos queda señalada. Y si, acto seguido, pulsamos la tecla de Mayúsculas, se nos abrirá la ventana emergente de Goldendict con todas sus definiciones y resultados para esa palabra.

Publicado: 16/10/2018

Última actualización: 16/10/2018


Índice general

Acerca de...

Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.

© Juan Manuel Macías
Creado con esmero en
GNU Emacs