Aline, thé où ? Chroniques en mouvement

GNU/Emacs, Tramp et Zsh sont dans un bateau

🍵2 min

Un article un peu technique aujourd'hui pour poser là une config qui m'a donné du fil à retordre, et ce deux fois. Donc pour ne pas m'arracher les cheveux une troisième fois et peut-être aussi vous l'éviter voici comment concilier GNU/Emacs et une connexion sur un serveur utilisant Zsh.

GNU/Emacs et Tramp

Donc si vous souhaitez éditer des fichiers distants sous GNU/Emacs on utilise le package Tramp. Et si vous souhaitez utiliser l'édition via sudo voici la conf qui va bien dans votre .emacs

(require 'tramp)
(eval-after-load 'tramp '(setenv "SHELL" "/bin/bash"))
(setq tramp-debug-buffer t)
(setq tramp-verbose 10)
(add-to-list 'tramp-default-proxies-alist
             '("server-prod" "root" "/ssh:toto@server-prod:"))
(setq password-cache-expiry nil)

Normalement cela suffit pour ouvrir un fichier /sudo:server-prod:./inbox.org

GNU/Emacs, Tramp et Zsh

Si vous utilisez zsh et peut-être également oh-my-zsh peut-être avez-vous comme moi un problème de connexion. Au regard des logs la connexion ssh s'effectue bien mais pour une raison obscure GNU/Emacs ne veut pas ! Dans ce cas insérer les deux lignes suivantes dans votre .zshrc du serveur distant

[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return
[[ $TERM == "tramp" ]] && unsetopt zle && PS1='$ ' && return

La deuxième ligne doit suffire mais dans le doute j'utilise les deux :)

Voilà voilà j'espère que cela pourra vous être utile.


Tu peux commenter en m'écrivant un petit mail 📫 , je l'insérerai à la fin de l'article 😉