VirtualBox + Vagrant で UbuntuやCentOS を使っています。たまに JavaやJavaScript, CSSなどのファイルをいじる時があり、そのためだけにVMにEmacsを入れるのは面倒くさいと思っていました。また、インストールしても設定されていないEmacsだと使用感もいまいちです。
設定方法
Emacs からリモートでファイルを編集するには TRAMPという仕組みを利用します。sshでアクセスできる環境であれば、Windows上のローカルファイルを編集するのと同じ操作感で、ファイルの編集ができます。
最近のEmacsであれば 標準で Trampを利用できるので .emacs や init.el で Trampがplinkを使うように設定します。
;; plink コマンドを実行するように
(setq-default tramp-default-method "plink")
Putty(SSH) で 編集先のLinuxに接続できることを確認し、PLINKコマンドにはPATHを通しておきます。パスワードなしで接続するなら、Pagent で セッションを保存しておきましょう
使用方法
Dired で指定するパスを Trampのフォーマットにするだけです。
C-x C-f /plink:vagrant@localhost#2222:abc.txt # /plink:USERID@HOSTADDR#PORT:PATH_TO_FILE
ディレクトリも開けます。通常のDiredの操作でコピーやリネームもできます。
C-x C-d /plink:vagrant@localhost#2222:/home/vagrant # /plink:USERID@HOSTADDR#PORT:PATH_TO_DIRECTORY
Pagent でセッションを保存してあれば、セッション名でアクセスできます。予め公開鍵の設定をしておけばパスワードの入力の手間も省けます。ディレクトリのパスも省略可能で、省略するとホームディレクトリが開きます。
C-x C-d /plink:ubuntu@rp3: # /plink:USERID@PAGENT_SESSION_NAME:[PATH_TO_DIRECTORY]
試した環境
Windows 10 Pro
GNU Emacs 26.3 (build 1, x86_64-w64-mingw32) of 2019-11-12
tramp-version 2.3.5.26.3
Putty Release 0.73
Ubuntu 19.10 eoan (接続先)
Pagent の設定を見てくれるのが楽ですね。SSHでログインしてEmacsを起動するのと、普段遣いのEmacsが使えるのでは別世界です。
コメント