Emacs: SSH modeパッケージの使い方


Table of Contents

1 shell modeでsshを実行する場合との違い

shell modeはひとつのバッファしか開かないので、複数のホストへ同時に接続できません。SSH modeの場合はM-x sshで新しいバッファを開くので、複数のホストへ同時に接続できます。

SSH modeで複数のホストへ同時に接続している場合、バッファのリストは以下のようになります。

* *shell* 2091 Shell:run /home/hiroom2/* *ssh hostname1… 458 ssh:run /scp:hiroom2@hostname1:/home/hiroom2/* *ssh hostname2… 898 ssh:run /scp:hiroom2@hostname2:/home/hiroom2/

SSH modeの場合、C-x C-fやC-x C-fを実行した場合にSSH接続先のカレントディレクトリを起点にファイルをそのまま新しいバッファで開くことができいます。

M-x diredDired (directory): /scp:hiroom2@<hostname>:/home/hiroom2/

shell modeの場合はssh実行時のカレントディレクトリが起点になります。

M-x diredDired (directory): ~/

2 SSH modeのインストール

load-pathで指定しているディレクトリにssh.elをコピーします。

$ git clone cp ssh-el/ssh.el ~/.elisp/

.emacsに以下を追加します。

(require ‘ssh)(add-hook ‘ssh-mode-hook (lambda () (setq ssh-directory-tracking-mode t) (shell-dirtrack-mode t) (setq dirtrackp nil)))

3 sshで接続する

M-x sshコマンドを実行してホスト名かIPアドレスを指定します。

M-x sshssh arguments (hostname first): <hostname> or <ipaddr>

M-x sshを実行します。

0001_ssh.png

ホスト名を入力します。

0002_hostname.png

リモートサーバへ接続しました。

0003_connected.png

これ以降の操作はshell modeと同様です。例えばコマンドの履歴はM-p/M-nです。

Android | Linux | SDL - Narrow Escape