TRAMP on Meadow
リモートのサーバ(coLinuxでも何でも)に開発環境を置くとき、そこにあるプログラムをどうやっていじるかという方法について。
とりあえず思いつく方法。
1番目はエディタが自分のとこにあって好きなようにできるけど、ローカルとリモートでファイルの同期するのが面倒すぎなので、不採用です。2番目のリモートで直接エディットするやり方は、vim使いなら設定(.vimrc)だけコピーしたら全く困らないような気がする。でもvim使いじゃないし。ターミナルでemacs -nwはどうか。でもなんかエディタ手元に置きたい的な欲求があるなぁ。Sambaが妥当かと思うんだけどなんとなく敬遠気味で。
とかぐだぐだ言ってるけど、要は単に興味で、MeadowでTRAMPをいってみることにしました。Meadow(Emacs)からリモートのファイルを透過編集できる。
で、試行錯誤した設定がこれ。
;;{{{ Tramp (when (require 'tramp nil 'noerror) (cond ((eq system-type 'windows-nt) (setq tramp-default-method "plink" tramp-completion-without-shell-p t) (modify-coding-system-alist 'process "plink" 'utf-8)) (t (setq tramp-default-method "scp"))) (add-to-list 'tramp-remote-path "~/bin")) ;;}}}
- modify-coding-system-alistはサーバに合わせて適当に。
- tramp-remote-pathに~/binを入れたのは、ここにmimencodeを置いたから。mimencodeが見つからない場合Trampがuuencodeを使うらしく、その場合文字化けしたので。
ファイルを開くには
C-x C-f /dev:~/foo/bar.sh
のようにする。"dev"はホスト名を書くところで、PuTTYだとあらかじめその名前でセッションを作っておく必要がある。No Passphraseで入れるようにしている。CygwinのOpenSSH派だとか言ったばかりだけどMeadowからなので、ここは柔軟性を発揮してplinkでいきます。
最初の/dev:~/...と打つのが面倒だという話もあるなぁと思ったけどいったんリモートのファイルを開いたら次から履歴をM-pで無問題。session.elも使ってるので、前のセッションのC-x C-fの履歴をM-pできるから、実際問題/dev:~/をまんま打つのは最初だけだった。
C-x C-fのあとはローカルのファイルシステムみたいにTAB連発で補完できたりもするし、diredもできるしいい感じです。
唯一気になる点として初回のファイルオープンだけかなりもたつきます。10秒くらい。2回目以降はそれほどでもないけど。
しばらくこれで生活してみます。