WindowsからEmacsでリモートLinuxファイルを編集する最良の方法

WindowsからEmacsでリモートLinuxファイルを編集する最良の方法

Linux マシンで Emacs を使用して Windows ホスト マシン経由でファイルを操作する最も高速で信頼性の高い方法は何ですか? Emacs フレーム間でテキストを簡単にコピーして貼り付け、すべてのキーボード ショートカットを使用できる必要があります。したがって、Putty と Cygwin は問題外です。TRAMP モードを試しましたが、接続しようとするとハングしてしまいます。

答え1

Trampは間違いなく正しい答えです。Trampに問題がある場合は修正してください。WindowsでTrampを動作させる最も簡単な方法はplink、PuTTY の SSH トンネリングおよびスクリプト コンポーネント。Cygwin もssh別の可能性です。

私が遭遇した問題の 1 つは、 が環境変数を にplink強制することです。これにより、ログイン スクリプトまたは他のログイン スクリプトが、端末と通信していると思ってデータを出力しますが、このデータはスクリプトを混乱させます。通常は、 をオプションで呼び出して、端末をエミュレートしないように指示します。Emacs では、リモート側で をに強制する Tramp メソッドを使用します。TERMxterm.profileplink-TplinkxTERMdumb

(if (eq system-type 'windows-nt)
    (setq tramp-default-method "plinkx"))

リモート側では、ログイン ファイル$TERMが の場合にプロンプ​​トなどの出力を生成しないことを確認してくださいdumb

答え2

「putty と cygwin は問題外です」と言ったとき、Cygwin コンソールまたは PuTTY シェルから直接 emacs を使用するのではなく、tramp を使用して Linux ボックスにアクセスする ntemacs (Windows 用の Emacs) を使用するという意味だったと思います。

良いニュースは、これが実現可能であるということです! :) 私は ntemacs と Cygwin (ssh アクセス用) の組み合わせを使用して、良好な結果を得ています。

必要なことは次のとおりです。

  • Cygwinをインストールし、opensshをインストールします(わからない場合は、すべてをインストールしてください)。そして、Linuxボックスにパスワードなしでアクセスできるようにsshを設定します。これについては、この短くて簡単な手順を参照してください。記事

  • Michael CookとKlaus Berndlによるcygwin-mountをコピーエマックウィキ そして、それを ~/.emacs.d/plugins/cygwin-mount (またはサードパーティの emacs パッケージが存在する場所) に配置します。

  • .emacs に次のような内容を入力して、cygwin-mount を有効にします。

(add-to-list 'load-path "~/.emacs.d/plugins/cygwin-mount")

(defvar cygwin-bin-dir
  "c:/cygwin/bin/"
  "*Directory of Cygwin bin.")

(when (eq (window-system) 'w32)
  (progn
    (setenv "PATH" (concat cygwin-bin-dir ";" (getenv "PATH")))
    (setq exec-path (cons cygwin-bin-dir exec-path))
    (require 'cygwin-mount)
    (cygwin-mount-activate)))

  • 次に、emacs を再起動し、Cx Cf を押して、ミニバッファに「/sshx:your_host:」と入力します (末尾のコロンに注意してください)。すべてがうまくいけば、tramp/ssh が起動し、リモート ディレクトリが表示されるはずです。

お役に立てれば。

答え3

Emacs をローカルで実行する代わりに、Linux ボックス上でリモートで実行し、ローカルの X ウィンドウに表示してみませんか。

必要なもの:

  • Windows用Xサーバー: 無料の解決策としては、次のようなものがあります。XmingCygwin/X (わかっています、Cygwin はダメだと言っていました。)
  • Linuxホスト上のEmacs
  • リモートコマンドを起動する方法(sshのようなもの)

基本的な手順:

  1. WindowsでXサーバーを起動する
  2. Emacs をリモートで起動し、ローカル X サーバーに表示します。私は通常、ssh を使用して「ssh -X @ emacs」コマンドを発行してこれを行います。または、Linux ボックスにログインし、DISPLAY 変数 (「export DISPLAY=:0」) を設定してから、emacs を起動することもできます。

関連情報