SSHでTRAMPする方法じゃないです。いわゆるふつーのSSHの方です。
PuTTYやらmsysやらのインストール方法は割愛。
WindowsのPATH環境変数に以下のパスを追加する。もちろん、パス情報は各人の環境に読み替えてくだしあ。
init.elにシェルの設定を追加する
(setq explicit-shell-file-name "C:/MinGW/msys/1.0/bin/bash.exe") (setq shell-file-name "C:/MinGW/msys/1.0/bin/bash.exe")
M-x shellでbashが起動すればおk
shell上でプロンプトが二重に出ることがあるが、接続先から送られてくるプロンプト情報にemacsのshellで解釈できないシーケンスが入っているのが原因である。
接続先のログインシェルやシェルの設定に依存するため、確実な対応策はないのだが、とりあえずTERM変数をてきとーに指定してシェルを起動するようにすれば大体おk。
plink -ssh -t USER@HOST "env 'TERM=emacs' /bin/bash"
上図をよく見ると、プロンプトのls -alの後にもls -alが出てしまっている。リモートシェル側のローカルエコーがらみの問題のようなので、ログインした状態でstty -echo
とすれば出なくなる。
毎度設定するのが面倒なら.bashrcあたりに書いてもいいが、ローカル端末や他のターミナルエミュレータから接続したときに問題が出る可能性があるので、TERM変数に応じて分岐させた方が良いだろう。