12

私の現在のemacsの使用パターンでは、いくつかのシェルモードバッファーが開いており、それぞれがsshセッションを実行しています。ただし、これで問題が発生します。リモートセッションでファイル名などをタブコンプリートしようとすると、シェルはリモートマシンではなくローカルマシンで使用可能なコンプリーションを使用しようとします。

たとえば、ファイル~/foobarがローカルマシンに~/frob存在し、リモートマシンに存在する場合、入力し~/fてTabキーを押すと、~/foobar正しく完了しません。emacsの外でsshを使用して同じことを試してみると、代わりに正しい完了が得られます~/frob

通常のsshセッションと同じようにタブ補完を取得するにはどうすればよいですか?

後で注意してください:M-x cd RET /ssh:host.example.com:/path/to/meタブ補完を適切に処理できるようにするためにも、それを微調整しているようです。

4

2 に答える 2

11

Emacsは、他のマシンにSSH接続するときに、現在のディレクトリ(default-directory)を追跡できません。

default-directoryを、現在のシェルバッファの/ ssh:YOURHOST:/ home/dir"のようなトランプファイル名に手動で設定でき ます。

私は主にtramp-bookmarks/shellを介してリモートマシンでシェルセッションを開始します。トランプはデフォルトディレクトリを自動的に設定します。ただし、リモートファイルのディレクトリ追跡にはバグがあり、トランクで修正されています(リリースされていません)。

http://comments.gmane.org/gmane.emacs.bugs/39082

于 2011-01-13T19:10:29.543 に答える
11

Mxシェルを実行してリモートコンピューターに対してsshを実行する代わりに、(Trampを使用して)リモートコンピューター上のディレクトリにアクセスし、そのDiredバッファーでMxシェルを実行します。

于 2011-02-01T03:08:31.053 に答える