
Was ist die schnellste und zuverlässigste Möglichkeit, über einen Linux-Rechner mit Emacs über einen Windows-Host-Rechner an Dateien zu arbeiten? Ich muss Text problemlos zwischen Emacs-Frames kopieren und einfügen und alle Tastaturkürzel verwenden können. Putty und Cygwin kommen also nicht in Frage. Ich habe den TRAMP-Modus ausprobiert, aber er bleibt einfach hängen, wenn ich versuche, eine Verbindung herzustellen.
Antwort1
Tramp ist definitiv die richtige Lösung. Wenn Sie ein Problem mit Tramp haben, beheben Sie es. Der einfachste Weg, Tramp unter Windows zum Laufen zu bringen, ist mitplink
, die SSH-Tunneling- und Skripting-Komponente von PuTTY. ssh
Eine weitere Möglichkeit ist die von Cygwin.
Ein Problem, auf das ich gestoßen bin, ist, dass plink
die TERM
Umgebungsvariable auf gezwungen wird xterm
. Dies kann dazu führen, dass Ihr .profile
oder ein anderes Anmeldeskript Daten ausgibt, weil es denkt, es spreche mit einem Terminal, aber diese Daten werden Ihre Skripte verwirren. Normalerweise würden Sie plink
mit der -T
Option aufrufen, um ihm zu sagen, dass es kein Terminal emulieren soll. Verwenden Sie in Emacs die plinkx
Tramp-Methode, die auf der Remote-Seite TERM
auf gezwungen wird dumb
:
(if (eq system-type 'windows-nt)
(setq tramp-default-method "plinkx"))
Stellen Sie auf der Remote-Seite sicher, dass Ihre Anmeldedateien keine Ausgabe (z. B. eine Eingabeaufforderung) erzeugen, wenn Folgendes $TERM
erfolgt dumb
:
Antwort2
Ich nehme an, als Sie sagten „Putty und Cygwin kommen nicht in Frage“, meinten Sie, dass Sie Emacs nicht direkt von der Cygwin-Konsole oder der PuTTY-Shell aus verwenden sollen, sondern dass Sie ntemacs (Emacs für Windows) mit Tramp verwenden sollen, um auf Ihre Linux-Boxen zuzugreifen.
Die gute Nachricht ist, dass dies machbar ist! :) Ich habe eine Kombination aus ntemacs und Cygwin (für den SSH-Zugriff) mit guten Ergebnissen verwendet.
Folgendes müssen Sie tun:
Installieren Sie Cygwin mit installiertem OpenSSH (wenn Sie sich nicht sicher sind, installieren Sie einfach alles) und richten Sie Ihr SSH so ein, dass Sie ohne Passwort auf Ihre Linux-Boxen zugreifen können. Lesen Sie dazu bitte diese kurze und prägnante Anleitung.Artikel.
Kopiere cygwin-mount von Michael Cook und Klaus Berndl vonAbonnieren und platzieren Sie es beispielsweise unter ~/.emacs.d/plugins/cygwin-mount (oder überall dort, wo Ihre Emacs-Pakete von Drittanbietern gespeichert sind).
Fügen Sie in Ihrer .emacs-Datei etwa Folgendes ein, um Cygwin-Mount zu aktivieren.
(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)))
- Starten Sie nun Emacs und Cx Cf neu und geben Sie "/sshx:your_host:" in den Minipuffer ein (beachten Sie den abschließenden Doppelpunkt). Wenn alles gut geht, sollte tramp/ssh starten und Sie sollten die Remote-Verzeichnisse sehen können.
Hoffe das hilft.
Antwort3
Anstatt Emacs lokal auszuführen, können Sie es auch remote auf der Linux-Box ausführen und in einem lokalen X-Fenster anzeigen lassen.
Was wirst du brauchen:
- X-Server für Windows: Einige mögliche kostenlose Lösungen umfassenXming,Cygwin/X (Ich weiß, Sie haben gesagt, kein Cygwin.)
- Emacs auf dem Linux-Host
- Eine Möglichkeit, den Remote-Befehl zu starten (so etwas wie ssh)
Die grundlegenden Schritte:
- Starten Sie Ihren X-Server unter Windows
- Starten Sie Emacs remote und lassen Sie es auf Ihrem lokalen X-Server anzeigen. Normalerweise mache ich das mit ssh, indem ich den Befehl "ssh -X @ emacs" eingebe. Alternativ können Sie sich auch in die Linux-Box einloggen, die DISPLAY-Variable festlegen ("export DISPLAY=:0") und dann Emacs starten.