以前は機能していた emacs+tramp 接続が現在機能していない理由をトラブルシューティングしようとしています。最初は Aquamacs の問題かと思いましたが、バージョン 23.3 (9.0) に基づいて OSX に Emacs.app をロードしましたが、どちらも機能しません。リモート ホストは FreeBSD 7.4 を実行し、ユーザー シェルのデフォルトは /usr/local/bin/bash です。
次のようなファイルを開こうとすると:
Find file: /username@remote_host:~/folder/
...ミニバッファのカーソルは次の位置で停止します:
Find file: /username@remote_host
...そして、これ以上何も入力できません。これを混乱させて、Cg で止めることもできません。Emacs がロックアップします。1分ほどでタイムアウトしますが、それまでは使用できません。
私の .emacs ファイルの関連する行は次のとおりです。
(require 'tramp)
(setq tramp-debug-buffer t)
(setq tramp-verbose 9)
(setq tramp-default-method "ssh")
(setq tramp-password-prompt-regexp ".*[Pp]assword: *$")
(setq tramp-shell-prompt-pattern "^[^;$#>]*[;$#>] *")
(setq password-cache-expiry nil)
問題のマシン (匿名化) のパスワードとシェル プロンプトは次のようになります。
Password:
[username@remote_host ~]$ # with a single space at the end
Tramp-password-prompt-regexp の値は".*[Pp]assword: *$"
Tramp-shell-prompt-pattern の値は"^[^;$#>]*[;$#>] *"
そして最後に、デバッグ バッファの最後の数行:
14:36:40.271851 tramp-get-connection-property (7) # check-remote-echo nil
14:36:41.090876 tramp-wait-for-regexp (6) #
are you awake
#$
14:36:41.091037 tramp-wait-for-regexp (1) # File error: [[Regexp `\(^\|\)[^#$
?$' not found in 60 secs]]
異なるバージョンのシェル正規表現がどこから来ているのかはわかりませんが、いずれにせよ、パスワードプロンプトに到達することさえありません。
私が間違っているかもしれないアイデアはありますか?
補遺
GNU Emacs 22.1.1 (mac-apple-darwin、Carbon バージョン 1.6.0)、Tramp バージョン 2.0.55 を使用すると動作します。ただし、ターミナルウィンドウに基づいており、Cmd、Ctrl、Caps Lockをシャッフルしてワークステーションをホームマシンのように感じさせ、EmacsにCmdを処理するように指示したため、これに頼るのは気が進まない.代替 Ctrl としてのキー。残念ながら、ターミナル ウィンドウはいくつかの Cmd キーの組み合わせをトラップします。
さらに
Tramp 2.0.58-pre を使用するEmacs For OS Xから Emacs-22.3-i386-10.5.7.dmg をダウンロードしました。これも機能し、キーの組み合わせをトラップする環境に関する問題はほとんどありません。しかし、Aquamacs とそれ以降の Carbon Emacs のバージョンが動作しなくなった理由はまだわかりません。