43

Tramp経由でEmacs経由でリモートファイルを開こうとしました。

(require 'tramp)
(setq tramp-default-method "ssh")

Emacsからメッセージが届きます

トランプ:リモートシェルからのプロンプトを待っています

Emacsはハングし、その後は何のアクションにも応答しませんでした

EmacsはWindowsにインストールされました。リモートファイルはLinuxマシン上にありました。

4

6 に答える 6

69

接続しているアカウントが奇妙なファンシーシェルプロンプトを使用している場合、これがトランプトリップを引き起こす可能性があります。

ルートとしてログインし、次のように入力します

PS1="> "

(これは通常の標準シェル(ZSH、BASH、younameit)プロンプトであり、tramp理解できるものです)次に、ユーザーアカウントに切り替えて起動 emacs -qし(.emacsこの混乱を引き起こしていないことを確認するため)、C-x C-f /sudo:root@localhost:/etc/hosts何が何であるかを確認します。

トランプが期待するものを定義する正規表現をカスタマイズすることもできます(非推奨):

M-x customize-variable RET tramp-terminal-prompt-regexp

私のアプローチ:

  1. 変数tramp-terminal-typeが「ダム」に設定されていることを確認してください

M-x customize-variable RET tramp-terminal-type

  1. 。*shrcでそれをテストし、正しいプロンプトを表示します。
case "$TERM" in
"dumb")
    PS1="> "
    ;;
xterm*|rxvt*|eterm*|screen*)
    PS1="my fancy multi-line \n prompt > "
    ;;
*)
    PS1="> "
    ;;
esac
于 2011-12-02T22:32:29.900 に答える
18

ここで鍵となるのは Windows ssh クライアントであり、'ssh' Tramp メソッドはほぼ確実に間違っています。

Cygwin を使用している場合は、'sshx' メソッドを使用する必要があり、おそらく認証を処理するために ssh-agent を使用する必要があります。詳細はこちら: EmacsW32 と cygwin でトランプを使用できますか?

Cygwin を完全にインストールする必要はないが、Cygwin DLL を使用するスタンドアロンの ssh クライアントにも同じことが当てはまると思います。(私はそのようなものを見たことを覚えていると確信しているので、これについて言及します。)

Alex Ott が指摘したように、PuTTY を使用している場合は、「plink」メソッドが必要です。Wiki で十分でない場合は、ここで検索すると、そのアプローチを構成するためのソリューションが見つかる可能性があります。

私が提案できる他の選択肢は次のとおりです。

  1. Cygwin ネイティブの Emacs を使用します。これは NTEmacs よりも遅くなりますが、Tramp は 'ssh' メソッドでうまく機能するようで、パスワードプロンプトも同様に機能します。

  2. Windows ボックスで Linux VM をホストし、その上で Emacs を実行します。これは、ジャンプするにはかなり大きなフープですが、Windows で作業するときに Tramp を使用する際の私の好みの方法です。

于 2011-08-05T12:19:24.410 に答える
3

Emacs wikiで解決策を確認しましたか? sshですかPATH?MS Windowsでの使用も推奨されplinkます - Tramp ドキュメントのセクション「インライン メソッド」を参照してください。

于 2011-08-05T10:16:12.737 に答える
0

ちなみに、必要trampに応じて、を使用してトランプなしでsudo実際にsudoをsudoedit実行できます。

現在、私はこのbash関数を使用しています:

erf () { SUDO_EDITOR="emacsclient -a emacs" sudoedit $@; }
于 2012-10-01T14:07:59.893 に答える