これまではリモートマシンのファイルを編集するときは SSH クライアントを立ち上げてログインし、 Emacs を立ち上げて、さらに sudo してという煩わしい手順を踏んでいました。
少し前に Emacs から TRAMP の機能を使うことで、まずローカルマシン上で sudo を行える ことを知り、 root 用の emacs と 2 個立ち上げる必要がなくなりました。 find-file から以下のように入力します。
/sudo::/etc/himitsu.txt
さらに TRAMP を利用することでローカルの Emacs から SSH で接続し編集できることを知りました。
/ssh:ussy@192.168.100.100:/home/ussy/tmp/himitsu.txt
.emacs に (setq tramp-default-method "ssh") を記述すると先頭の ssh: は不要になります。
ここまであるならリモートで root になれるだろうと思って調べてみたところ、 Emacs x tramp でネットワーク上のファイルにアクセスにやり方が載っていました。
/multi:ssh:ussy@192.168.100.100:sudo:root@localhost:/etc/himitsu.conf
このあたりはマルチホップということでドキュメントに記述されていました。 てかドキュメント見ていませんでした。
実際に find-file すると mini-buffer にはかなり長い文字列が入ります。 何度も入力するのはしんどいので isearch で履歴を拾ってきてカバーするといった感じにしています。
あと自宅のサーバへの SSH は公開鍵認証かつパスワードでアクセスするようにしていますが、一回一回保存時にパスワードを聞かれるのが嫌なので Mac のマシンでは keychain にパスワードを登録するようにしました。
こうして TRAMP によって Emacs がまた好きになりました。