Tramp, pour Transparent Remote (file) Access, Multiple Protocol, est comme son nom l'indique un module Emacs permettant d'accéder à distance à des fichiers, mais pas uniquement. Il supporte plusieurs protocoles, dont SCP/SSH, FTP, Telnet, rsync, smb, mais aussi sudo et su. Il est possible d'utiliser la plupart des commandes Emacs à travers Tramp, comme dired ou le gestionnaire de version. Oui monsieur !

Comment ça marche ? C'est très simple, il suffit d'installer tramp (apt-get install tramp sous les distributions modernes), puis de demander à Emacs d'ouvrir ou de sauvegarder un fichier en utilisant un nom de fichier de la forme:

/utilisateur@machine:/chemin/fichier.txt

Ensuite, Emacs se charge comme un grand du reste, il vous demande un mot de passe (sauf si ce n'est pas nécessaire, par exemple pour accéder à un serveur SSH dont l'authentification passe par une clef), puis télécharge le fichier et vous l'affiche comme s'il était en local. À chaque sauvegarde, il le met à jour sur le serveur, de manière transparente. C'est très pratique, par exemple si on a besoin de développer un applicatif web à distance sur un serveur sans environnement graphique mais que l'on souhaite conserver son environnement de travail habituel (Emacs bien sûr ;-)). À titre d'exemple, ce billet est rédigé en utilisant Tramp et le mode blogmax d'Emacs.