Edición de archivos remotos con Emacs

El paquete TRAMP viene instalado por defecto en Emacs, no hay que instalar nada y es el paquete que nos permite editar ficheros que no se encuentran en nuestra máquina.

El caso es que no lo había utilizado, pero estos días he tenido algún problemilla con la configuración de mi nube que me han obligado a tener que trastear por espacios «lejanos», o remotos, escribiendo en ficheros situados en una máquina que no es la mía, aunque tenga acceso mediante ssh . Pensé: «Bueno, es el momento de usar TRAMP y escribir un artículo largo y sesudo de cómo funciona».

¡Qué triste! Pensaba que sería algo complicado, complejo y lleno de detalles que tener en mente para abrir un túnel ssh y modificar el fichero que queremos. Nada más lejos de la realidad: ¿Sabes cómo abrir un fichero con Emacs? Si la respuesta es «sí» ya sabes abrir un fichero remoto. Sólo necesitas comenzar el nombre del fichero con una pequeña información. Por poner un ejemplo vamos a ver los siguientes datos para conectar por ssh :

Usuario : nombre

: Servidor : misitio.com

: Puerto : 12345

: Password : abcABC_123456

: abcABC_123456 Fichero: ~/fichero.txt

Para abrir un fichero en remoto lo único que tenemos que hacer es utilizar la famosa combinación C-x C-f . A continuación pide el nombre del fichero que queremos abrir, debemos teclear el siguiente nombre:

/ssh:nombre@misitio.com#12345:~nombre/fichero.txt

Emacs nos pedirá el password y después de teclearlo establecerá la conexión abriendo el fichero solicitado. Ya está, se ha terminado el artículo...

Algunos datos más para los curiosos De forma general, podemos decir que la URL consta de los siguientes elementos: /método:usuario@servidor:path/al/fichero Además, si tenemos algún problema para recordar el nombre del fichero exacto, podemos utilizar completion pulsando <TAB> . Lo que me recuerda que ya había utilizado TRAMP sin saberlo, para editar algún fichero local. Y algunos os preguntaréis: ¿Utilizar un chismático de edición remota para edición local? Pues sí. Recuerdo haber modificado el fichero /etc/hosts desde una sesión abierta de Emacs tecleando: C-x C-f /sudo::/etc/hosts Emacs me pidió el password de root y lo edité sin más complicaciones. ¿Cuáles protocolos tenemos disponibles? He de confesar que para rellenar un poco un artículo que me estaba quedando un tanto desangelado, he mirado qué tipo de protocolos de comunicación o método de conexión se pueden utilizar: rsh , ssh , plink (si estás utilizando PuTTY en windows ), plinkx , telnet

, , (si estás utilizando PuTTY en ), , su , sudo (que ya hemos visto), sg ( switch group ), doas (método utilizado por OpenBSD como sudo ), krlogin , ksu

, (que ya hemos visto), ( ), (método utilizado por como ), , smbclient con una URL tal que /smb:usuario%dominio@servidor:/path/al/fichero .

con una tal que . rcp , scp , rsync , scpx

, , , pscp , psftp , sftp , afp , fcp , nc , ftp

, , , , , , dav y davs por ejemplo para acceder a nuestra nube particular.

y por ejemplo para acceder a nuestra nube particular. gdrive para acceder a Google Drive .

para acceder a . adb para acceder a un dispositivo con android . Es decir, hay todo un abanico de conexiones que nos puede ser útiles a la hora de conectarnos con nuestros ficheros de texto.