普段Emacsを使っている人でもssh先でファイルを編集するときや、sudoでファイルを編集するときはvi/vimを使うという人は結構いるのではないだろうか。
Emacs22.1から標準で入っているtramp-modeを使えばそんな場合でも使い慣れたEmacs上でファイルを編集できる。
参考: https://www.emacswiki.org/emacs/TrampMode
セットアップ
不要。
(古いEmacsでは(require 'tramp)
が必要らしい)
使い方
リモート端末のファイルを編集
C-x C-f /scp:username@remotehostname:filename
先頭のscp
は接続に使用するメソッドで省略するとデフォルト(通常はscp
)になる。
C-x C-f /username@remotehostname:filename
ssh
メソッドを使うとレスポンスが良くなるらしい。
C-x C-f /ssh:username@remotehostname:filename
ただし自分の環境ではssh
メソッドでファイルオープンに失敗することがある(未解決)ので普段はscp
を使用している。
単純にファイルの編集が可能であるだけではなく magitも使用可能 であることが驚異的。
sudoでファイルを開く
C-x C-f /sudo::filename
上記コマンドでrootのパスを聞かれてしまう場合は
C-x C-f /sudo:username@localhost:filename
sudo
メソッドの時にデフォルトで使用されるユーザー名はroot
になっているがM-x customize-group tramp
で変更できる
FAQ
接続が切れるとフリーズする
M-x tramp-cleanup-all-buffers
を実行する