Posts tagged "emacs":
2FA en i3wm
En la entrada 2FA en eshell expliqué cómo configurar la identificación en dos pasos en eshell, asignándole una tecla que podemos pulsar estando en Emacs para copiar el codigo al portapapeles.
Sin embargo, no funciona si no estamos dentro de Emacs. Para que
funcione globalmente usando el gestor de ventanas i3 windows manager,
podemos añadir la siguiente línea al archivo config situado
normalmente en ~/.config/i3/config
:
bindsym XF86AudioMicMute exec emacsclient --eval "(eshell2fa)"
He usado un atajo de teclado un poco raro, pero es que el Thinkpad X230 que uso tiene un botón de fácil acceso de silenciar el micrófono que nunca uso, y me viene perfecto para tener el 2FA a mano. Por supuesto se puede cambiar por cualquier otra tecla.
Con esto ya podemos tener acceso al código 2FA cómodamente pulsando un botón.
Tabla de etiquetas en Emacs
Hoy estaba en una práctica de informática intentando comprender un código bastante ilegible de un profesor, y me acordé de que con Emacs se puede construir un archivo de etiquetas para poder consultar rápidamente algunas definiciones.
En concreto es bastante útil si hay cabeceras personalizadas con funciones y estructuras predefinidas y no quieres estar todo el rato de un lado para otro mirando definiciones.
Por suerte me acordaba de dónde tenía que consultar cómo crear el archivo para poner en funcionamiento el sistema y lo hice sobre la marcha, pero por si acaso no me acuerdo en el futuro lo voy a dejar aquí documentado.
La característica a la que me refiero se llama TAGS
en el manual de Emacs, y se puede consultar más sobre su funcionamiento en el nodo Tags tables
, que a fecha de este post es el punto 29.4.2 del manual.
Si no entendido mal todo consiste en crear un archivo al que Emacs pueda acudir para mirar las definiciones correspondientes y saltar hacia donde sea necesario. Para crear este archivo basta con ejecutar por ejemplo find . -name "*.[chCH]" -print | etags -
en el directorio base del proyecto y luego pulsar M-.
en la definición que queramos mirar.
A pesar de no tener internet en el momento de la práctica pude consultar todo esto con tan sólo un C-h i
, y montar el archivo aunque no me acordaba de como se hacía. Y como resultado pude comprender la práctica de forma mucho más fácil y conseguí hacerla sin desesperarme, todo gracias a Emacs :).
Company ya tiene manual
Una de las mejores cosas que tiene el proyecto GNU, y por extensión GNU/Emacs, es la documentación. Con el paso de los años cada vez valoro más la importancia de una buena documentación, ya que leerla es la mejor forma de aprender a usar un determinado software.
En el caso de company-mode, tuve problemas cuando estaba configurándolo porque busqué por todos lados la documentación oficial pero solo encontraba posts en diversos blogs, que aunque pudieran ser muy útiles, no contenían el material de referencia que estaba buscando.
Quizás debido a que estoy ya acostumbrado a la extensa documentación de gran calidad de GNU, ni siquiera consideré que no existiera un manual como tal, y simplemente dejé de buscar porque pensé que no era capaz de encontrarlo. Pero hace poco descubrí que efectivamente el manual de company-mode se publicó en enero de 2022 si no me equivoco.
Está disponible online en https://company-mode.github.io/manual/Getting-Started.html, o, dependiendo de la versión de Emacs instalada se puede acceder al manual desde el propio Emacs con C-h R company RET
.
Eshell para administración de sistemas
Llevo un tiempo intentando sustituir mi uso de Bash por Eshell. No es que tenga nada en contra de Bash, simplemente eshell es parte de Emacs y está escrita en Lisp, por lo que la puedo adaptar como quiera y se integra mejor en mi flujo de trabajo.
Sin embargo seguí usando Bash para conectarme por ssh a mi servidor en la Raspberry Pi. Hace poco descubrí que no es necesario hacer ésto si uso la Eshell. Simplemente puedo abrir una conexión con Tramp desde Emacs, y una vez que esté por ejemplo en un directorio remoto con dired, abrir la Eshell. Mágicamente estaré ya dentro del servidor como si de una conexión por ssh se tratase.
Lo único que me queda por resolver es la configuración de Tramp, ya que ahora mismo se me queda pillado a veces y no consigo conectarme al servidor a través de él, aunque pueda hacerlo por ssh normalmente.