Tramp 是一套 Emacs 底下的套件,可以讓你利用 ssh/scp 等工具直接 編輯遠端主機上面的檔案。

使用 FreeBSD 將 ports/net/tramp 裝好以後,在 ~/.emacs 加入以下這兩行:

(add-to-list 'load-path "/usr/local/share/emacs/21.3/site-lisp/tramp")
(require 'tramp)

Tramp 開檔案的語法跟 Ange-FTP 類似,參考一下這些範例:

/ssh:blah.com:/tmp/test_tramp.txt
/scp:jack@blah.com:public_html/index.html
/blah.com:/tmp/test_tramp.txt

上面範例前兩行分別表示了到 blah.com 上面的 /tmp/test_tramp.txt~jack/public_html/index.html 這兩個檔案。同時第二行是表示以 jack 的身份登入 blah.com 的意思。基本上語法是這樣:

/[<方法>:][<使用者>@]<主機>:<檔案>

<> 包起來的字眼表示變數,[] 包起來的字眼則表示是可有可無。

只要在 C-x C-f (find-file) 的時候,利用上面範例的語法,就可以利用 ssh 或是 scp 來連線到 blah.com ,直接編修檔案,不過遠端主機基本上要有 perl 才行。scp 與 ssh 並不是任意的程式,而是 Tramp 內定的特殊連線方法字串, 另外還有 scpx, sshx, telnet, rsync 等等連線方法可以用。

另外,似乎在讀取檔案屬性方面還有些問題待解決。