ssh [email protected]
でリモートマシンに接続します。リモートマシンでファイルを開く必要がある場合、たとえば、
emacs /usr/share/nginx/html/index.html
シェルでindex.html
ファイルを開きます。一部のemacsコマンドは機能するが、他のコマンドは機能しないことに気付きました。たとえば、C-w
は機能しません。 M-<
は機能しません。これを修正するにはどうすればよいですか?また、emacsおよびsshを使用する最良の方法は何ですか?
この質問 が見つかりましたが、混乱しました。
私は通常、ローカルのEmacsインスタンスからリモートファイルを開くことを好みます。
ローカルマシンでEmacsを実行している間、sshでリモートファイルを開くことは、わずかに 異なる構文 。
Sshの場合、C-x C-f
と入力できます。ここで、minubufferに/ssh:user@Host:/path/to/file
と入力します(パスの入力を開始するとタブ補完が機能します。先頭の/
文字にも注意してください)。完全な ドキュメントはこちら を参照してください。
あなたの例では、それは次のようになります:
C-x C-f /ssh:[email protected]:/usr/share/nginx/html/index.html
ローカル設定やインストールされたパッケージなどを使用しながら、Emacsでsshを介してリモートファイルを編集できるようになりました。
上記の答えに追加するために、頻繁に使用するマシンのショートカットを作成できます。
(defun connect-remote ()
(interactive)
(dired "/[email protected]:/"))
これにより、リモートマシンでdired
バッファーが開きます。ローカルバッファと同じように、このバッファをナビゲートできます。
リモートマシンにsshキーを設定している場合、パスワードを入力する必要さえありません。
リモートマシンがたくさんある場合は、各機能にわかりやすい名前を付けることができます。 connect-cupcake
、connect-KitKat
および完了にsmex
パッケージを使用します。
また、「ショートカット」に関する@ abo-aboの投稿に追加するには-
Emacsブックマークを使用リモートファイルまたはディレクトリにアクセスすると、通常どおりブックマークを作成します。次に、C-x r b
を使用して、名前を(補完付きで)指定したリモートブックマークにジャンプします。
Bookmark + を使用すると、リモートブックマークが*Bookmark List*
で特別に強調表示されるため、より多くを認識できます。簡単に。また、su
またはSudo
(root
)がアクセスする必要があるリモートブックマークは、強調表示が異なります。
Dired + を使用すると、Diredに含まれるリモートディレクトリにアクセスして、複数のリモートファイルまたはディレクトリをすばやくブックマークすることもできます。 、それらをマークし、C-x b
を押します。ブックマークに名前を付ける必要はありません。ファイルにちなんで名前が付けられます。リモートファイルへの移動にこれらのブックマークを使用したことがない場合でも、Bookmark +tags = ファイルを整理し、ファイルのサブセットを操作します。
Icicles を使用すると、コマンドを使用してブックマークにジャンプするたびに、完了候補をそれらに絞り込むことができます完了時にC-M-@
を押すとリモートになります。
元の投稿者は、rootユーザーとしてリモートファイルを開くことに関心を示しました。これは次のコマンドで実行できます。
C-x C-f /ssh:you@remotehost|Sudo:remotehost:/path/to/file RET
詳細なドキュメントはこちらにあります: https://www.emacswiki.org/emacs/TrampMode#toc14
リモートマシンに焦点を当てた簡単な回答:
すべてのemacsをリモートマシンで実行する予定の場合は、
ssh -X username@hostname
次に、リモートセッションでemacsを実行し、ローカルマシンに表示します。古い質問ですが、完全を期すためにこれを投げ入れたかったのです。確かにいくつかのxhost/X構成の問題がありますが、多くのネットワークではこれはすぐに動作します!
emacsのSSHモード はあなたが探しているものです。
設定したら、実行するだけです
M-x ssh RET hostname RET
次に、パスワードの入力を2回要求します(コマンドラインに1回、ファイルのロードに1回)。
ほとんどの場合、他のシェルと同様に扱うことができます(非対話型でいくつかの小さな違いがありますが、それだけです)。
どのディレクトリにいるかを追跡するので、見ているディレクトリからファイルを開きたい場合は、正しいディレクトリから自動的に起動し、ファイル名を入力するだけです。
Emacs Wiki にも詳細があります。