Cómo Usar Emacs Como un Lector de USENET con Gnus

Lector de Usenet Emacs Gnus

USENET es un sistema de mensajería global descentralizado. Se considera que es la primera red social global con más de 100,000 grupos que hablan sobre varios temas y especializaciones. Esto hace que USENET sea un repositorio de conocimiento y discusión particularmente bueno para el lector interesado.

Tabla de Contenidos

  • ¿Qué es gnus?
  • ¿Por qué usar un lector de noticias en Emacs?
  • Instalando gnus
  • Configurando gnus para leer grupos de USENET
  • Uso básico
  • Preguntas Frecuentes

También lee: Cómo Usar Emacs para Reproducir Música con EMMS

¿Qué es gnus?

A pesar del declive de USENET en los últimos años, todavía hay personas que lo utilizan para albergar discusiones y compartir noticias. La mayoría de los usuarios de USENET en estos días interactúan con la red a través del sitio web de Google Groups. Sin embargo, si estás usando Emacs, hay una manera de ver los grupos de noticias de USENET a través de él.

Lector de Gnus 01 Lista de Grupos de Noticias

Gnus es un paquete de Emacs diseñado para leer grupos de noticias. Es un programa rico que tiene muchas características poderosas que hacen que la lectura de noticias sea fácil y conveniente. Además, al estar dentro de Emacs, el usuario puede manipular fácilmente el texto dentro de las publicaciones y usarlo con el resto del sistema Emacs.

¿Por qué usar un lector de noticias en Emacs?

Emacs siempre ha sido promocionado como el fregadero de la extensibilidad. No solo porque tiene muchos paquetes y características adicionales, sino que también es muy fácil extender las funciones básicas de Emacs más allá de la edición de texto.

Emacs opera bajo la idea de interoperabilidad. Esta idea permite a Emacs usar sus paquetes para formar un entorno completo donde puedes crear texto y cambiarlo de diferentes maneras.

Lector de Gnus 02 Interoperabilidad de Emacs

Por ejemplo, Emacs viene con su propio administrador de archivos: dired, un paquete simple de Emacs que te permite recorrer una estructura de directorios y abrir archivos. Sin embargo, a diferencia de otros administradores de archivos, dired muestra sus resultados como texto.

Si también estás usando Org Mode para llevar un diario, puedes copiar ese texto y crear enlaces elaborados desde dired dentro de tus Archivos Org.

Lector de Gnus 03 Dired

Con la capacidad de Emacs de usar la salida de texto de un paquete como entrada en otro paquete, hace que un lector de noticias como gnus sea invaluable para el ecosistema de Emacs.

Esto te permite, por ejemplo, copiar un pasaje de texto de una publicación de noticias, luego poner ese texto en Org Mode y agregarlo como una entrada de diario, publicación de agenda o captura de ideas.

También lee: 5 Paquetes Útiles de Emacs para Mejorar la Productividad

Instalando gnus

Gnus viene en cada instalación predeterminada de Emacs desde la Versión 19.32. Si estás usando una versión reciente de Emacs, es probable que ya venga con gnus.

Lector de Gnus 04 Gnus Integrado

Puedes verificar si gnus está instalado en el sistema presionando Alt + X y escribiendo gnus. Esto cargará una versión básica y sin configurar de gnus.

Configurando gnus para leer grupos de USENET

La configuración inicial para gnus es relativamente sencilla. Solo necesitas establecer un par de opciones en tu archivo init.el para crear un archivo .newsrc.

El archivo .newsrc es un archivo estándar para lectores de grupos de noticias ubicado en tu directorio personal. Su propósito principal es registrar todos los grupos disponibles y suscritos en un servidor de USENET.

Además, el archivo .newsrc también actúa como un archivo de estado que rastrea todas las publicaciones que ya has leído.

Lector de Gnus 05 Lista de Grupos Usenet

Para crear un archivo .newsrc, ejecuta el siguiente comando:

touch/home/$USER/.newsrc

También lee: Cómo Configurar Leafnode como un Servidor USENET Offline

Configuración Inicial

Una vez hecho esto, puedes comenzar a configurar el archivo init.el, el archivo de configuración para Emacs. Por defecto, puedes encontrar este archivo ya sea en “/home/$USER/.emacs.d/” o “/home/$USER/.config/emacs.”

Para inicializar correctamente gnus, necesitas agregar las siguientes líneas al archivo init.el:

(setq user-full-name '"tuusuario")  
(setq user-mail-address '"[email protected]álido")  
(setq gnus-select-method '(nntp "news.eternal-september.org"))
  • user-full-name es una opción general que establece tu nombre de usuario en Emacs. Este será el nombre que gnus mostrará en tu encabezado “De” cuando envíes publicaciones de noticias.
  • user-mail-address también es una opción general. Similar a user-full-name, le dice a gnus que muestre este correo electrónico en tu encabezado “De”. En mi caso, utilicé una dirección de correo electrónico inválida.
  • La última opción, gnus-select-method, es una opción específica de gnus que le dice al lector de noticias a qué servicio y servidor conectarse. En mi caso, seleccioné el servicio nntp con “news.eternal-september.org” como mi servidor.

Lector de Gnus 06 Emacs Init El

También lee: 8 Prompts de Bash Útiles e Interesantes

Autenticación Remota de USENET

Una cosa importante a tener en cuenta es que si estás usando un proveedor de USENET que requiere autenticación, necesitas proporcionar los detalles de tu cuenta en un archivo authinfo. Este es el archivo donde gnus leerá los detalles del servidor de USENET, así como tu nombre de usuario y contraseña.

Lector de Gnus 07 Emacs Authinfo

Para crear uno, puedes presionar Ctrl + X, Ctrl + F y escribir /home/$USER/.authinfo en Emacs. Este comando creará un archivo .authinfo en tu directorio personal y lo abrirá en un buffer.

La sintaxis general del archivo .authinfo se ve algo así:

machine news.domain.name login tuusuario force yes password tucontraseñaaquí
  • La variable machine indica que te estás conectando a una máquina o servidor diferente.
  • El campo domain le dice a gnus que esta es la dirección de la máquina a la que deseas conectarte.
  • El campo login es donde pondrás el nombre de usuario de tu cuenta de USENET.
  • La opción “force yes” le dice a gnus que te autentique incluso si el servidor no lo requiere.
  • Por último, la variable password contiene la contraseña de tu cuenta de USENET.

Usando Servidores USENET Locales

Además, gnus también puede tomar sus fuentes de un archivo de spool local. Esto es útil si tienes un servicio que descarga automáticamente tus grupos de noticias a tu máquina local.

Para hacer eso, necesitarás cambiar la configuración nntp en la función “gnus-select-method”:

(setq gnus-select-method '(nnspool ""))

Sin embargo, si estás usando Leafnode como tu servidor USENET local, necesitarás configurarlo como un servidor NNTP. Esto se debe a que Leafnode se comporta más como un servidor USENET en lugar de un directorio normal “/var/spool/”.

Para usar un servidor Leafnode que se esté ejecutando en la misma máquina, puedes escribir lo siguiente:

(setq gnus-select-method '(nntp "localhost"))

Con eso hecho, ejecuta gnus presionando Alt + x y escribiendo gnus en el buffer de comandos. Esto cargará gnus y buscará todos los grupos que están disponibles en tu servidor USENET remoto.

También lee: Cómo Restablecer la Contraseña de Root en Linux

Uso Básico

Una vez que gnus se carga, serás recibido por una pantalla en blanco. Esto se debe a que, por defecto, gnus oculta todos los grupos de noticias que están no suscritos y leídos.

Puedes ver una lista de todos los grupos de noticias disponibles en el servidor USENET presionando Shift + 6. Esto abrirá la pantalla del Servidor para gnus. En mi caso, esto mostró todos los grupos de noticias disponibles de Eternal September.

Lector de Gnus 08 Grupos de Noticias Usenet

Suscripción a Grupos de USENET

Desde aquí, puedes presionar U para suscribirte o desuscribirte a un grupo de noticias en particular. Esto pondrá ese grupo en la pantalla de inicio cuando inicies gnus por primera vez.

Por ejemplo, me suscribí tanto a “alt.religion.emacs” como a “alt.folklore.computers” en la pantalla del Servidor. Una vez que recargué gnus, puso esos dos grupos en la pantalla principal para que los navegara.

Lector de Gnus 09 Pantalla Principal de Gnus

También lee: Cómo Configurar un Servidor SFTP en Linux

Movimiento de Buffer

Desde allí, presiona Enter para entrar en el grupo de noticias, y usa las teclas de movimiento estándar de Emacs, como Ctrl + N y Ctrl + P, para desplazarte por las diferentes publicaciones en el grupo.

Lector de Gnus 10 Alt Computadoras Folklore

También puedes presionar la tecla Enter o Tab para abrir una publicación y las teclas Backspace y Space para desplazarte hacia arriba y hacia abajo dentro de la publicación.

Usa la función de búsqueda de Emacs (Ctrl + S y Ctrl + R) para navegar rápidamente por las publicaciones y encontrar lo que deseas.

Publicando y Respondiendo a Publicaciones de USENET

Para crear una nueva publicación dentro de un grupo de noticias, presiona A para abrir un editor de mensajes donde puedes escribir los detalles de tu publicación.

Lector de Gnus 11 Nueva Publicación

Presiona Ctrl + C dos veces cuando hayas terminado para enviar el mensaje a ese grupo de noticias en particular.

Pero si deseas responder a una publicación en un grupo, puedes presionar Shift + S, Shift + F. Esto iniciará un buffer de “Seguimiento” donde gnus te llevará a un editor de mensajes con la publicación original ya citada para ti.

Lector de Gnus 12 Nuevo Seguimiento

Similar a publicar un nuevo mensaje, puedes presionar Ctrl + C dos veces para enviar el seguimiento a esa publicación.

Consejo: Descubre cómo puedes usar el correo electrónico dentro de Emacs.

Filtrando a través de Archivos de Puntuación

Gnus también tiene un sistema de filtrado poderoso pero fácil de usar que utiliza archivos de puntuación. Es diferente de un killfile regular donde las publicaciones son automáticamente “eliminadas” al alcanzar un patrón o criterio particular.

Los archivos de puntuación permiten al usuario reducir o aumentar incrementalmente la puntuación interna de una publicación particular, lo que le dice a gnus qué publicaciones priorizar y cuáles ocultar o no recuperar del servidor remoto.

Tipos de Filtrado

Además, gnus también tiene un sistema de filtrado rico en características. Permite al usuario controlar y ajustar varias partes de un filtro particular.

Lector de Gnus 13 Propiedad de Filtro 1

Por ejemplo, si quiero bajar la puntuación de una publicación particular. Solo puedo resaltarla y presionar L. Esto abrirá un pequeño menú en el buffer de comandos que me preguntará qué propiedad de la publicación quiero usar como base para la puntuación.

La lista de propiedades es extensa, pero las más importantes son:

  • A para puntuar en función del nombre del autor.
  • S para puntuar en función del texto del asunto.
  • L para puntuar en función del número de líneas.
  • B para puntuar en función del cuerpo del texto.

En mi caso, quiero puntuar esta publicación en función del autor de la publicación, así que presioné A.

Métodos para Coincidir con el Filtro

Desde allí, gnus te preguntará qué tipo de coincidencia de cadena deseas implementar en esta puntuación. Puedes elegir entre exacta, subcadena, difusa y expresiones regulares:

  • Exacta utiliza toda la cadena para coincidir con el texto.
  • Subcadena utiliza partes de la cadena para coincidir con el texto. Esto significa que la publicación no necesita tener todo el texto coincidente para ser afectada.
  • Difusa utiliza un modelo predictivo basado en las publicaciones anteriores disponibles para el grupo de noticias. Esto es especialmente útil para los autores creativos que intentan eludir la coincidencia de subcadenas utilizando símbolos, números y cualquier forma de oscurecer su texto.
  • Regexp utiliza expresiones regulares más tradicionales para filtrar texto.

Lector de Gnus 14 Tipo de Filtro

En mi caso, seleccioné subcadena, así que presioné S.

También lee: 5 Grandes Ayudantes AUR para Arch Linux

Duración del Filtro

Por último, gnus te preguntará si deseas que esta puntuación sea temporal, permanente o inmediata.

  • Temporal significa que la puntuación expirará en una fecha establecida. Es útil cuando solo deseas bajar o aumentar la puntuación de una publicación o autor particular por un período limitado de tiempo.
  • Permanente significa que la puntuación no expirará. Esto es útil para filtrar a los spammers que podrían irrumpir en el grupo.
  • Inmediata significa que gnus aplicará la puntuación al buffer actual sin agregarla al archivo de puntuación. Esto es útil si solo deseas filtrar las publicaciones ahora pero no deseas puntuarlas de manera persistente.

Lector de Gnus 15 Tiempo de Filtro

En mi caso, quería que este filtro fuera permanente, así que presioné P.

¡Felicidades! Ahora tienes una comprensión básica de cómo usar gnus como un lector de noticias en Emacs. Además, también tienes una idea básica de cómo conectarte a un servidor USENET autenticado, así como de cómo utilizar correctamente los archivos de puntuación y el filtrado.

Sin embargo, si toda esta charla te hizo interesarte en aprender más sobre Emacs, entonces deberías aprender cómo instalar Doom Emacs.

También lee: ¿Qué es Doom Emacs y Cómo Instalarlo?

Preguntas Frecuentes

He escrito un mensaje y ya no quiero enviarlo. ¿Cómo puedo cancelar mi publicación o seguimiento?

No se sabe, pero puede ser posible cancelar la publicación actual que estás escribiendo. Para hacer eso, puedes presionar Ctrl + C, Ctrl + D.

¿Es posible agregar múltiples servidores USENET en gnus?

¡Sí! Solo necesitas agregar otra variable “gnus-select-method” en tu archivo init.el.

Por ejemplo, tu archivo init.el podría verse algo así:

(setq user-full-name '"ramcesred") (setq user-mail-address '"[email protected]álido") (setq gnus-select-method '(nntp "news.eternal-september.org")) (setq gnus-select-method '(nntp "nntp.aioe.org")) (setq gnus-select-method '(nntp "localhost"))

Una vez hecho, solo recarga Emacs para recargar tu configuración de gnus.

He leído un artículo, y ahora ha desaparecido de mi lista de pantalla principal. ¿Es posible que pueda fijar una publicación en particular cuando la estoy siguiendo activamente?

¡Sí! Puedes hacer eso utilizando la función gnus-summary-tick-article-forward. Puedes acceder a esta función presionando la tecla U mientras esa publicación está seleccionada.

Es importante tener en cuenta, sin embargo, que esto solo “fijará” este artículo. Todas las demás respuestas dentro de ese hilo no aparecerían por defecto. Para hacer eso, presiona Shift + A, Shift + T para reconstruir todo el hilo para ese tema.