Wenn ich mit tramp ein Remote-Verzeichnis öffne (z. B. Cx Cf / ssh: user @ example: / somedirectory), wird ein dired-Puffer für dieses Remote-Verzeichnis geöffnet. Das Problem ist, dass ich Verzeichnisse und / oder Dateien vom Remote-Server auf meinen lokalen Computer kopieren möchte. Ich habe einige Syntaxen ausprobiert, z. B. das Markieren aller Verzeichnisse oder Dateien, das Drücken von 'C' und das Angeben von local: / somelocaldir oder nur / somelocaldir, aber bestenfalls werden die Dateien in eine Datei irgendwo auf dem Remote-Server kopiert.
Gibt es eine Möglichkeit, Dateien aus einem Remote-Puffer (Tramp) in ein lokales Verzeichnis zu kopieren? Ich benutze Emacs erst seit 6 Monaten. Wenn es also einen völlig anderen Ansatz gibt, der besser ist und mich trotzdem Emacs verwenden lässt (vorzugsweise mit dired), wäre das großartig.
Zur Verdeutlichung bin ich nicht daran interessiert, entfernte Dateien anzuzeigen, zu bearbeiten, aufzulisten usw. Ich möchte nur Dateien von einem Remote-Server auf meinen lokalen Computer kopieren, mit dem gleichen Effekt, den Sie erhalten würden, wenn Sie scp oder scp -r verwendet hätten. Ich hoffe nur, dass ich das tun kann, ohne aus Emacs aussteigen oder sogar die Schale benutzen zu müssen (aber ich werde das wahrscheinlich nur tun, bis ich hier eine Antwort bekomme).
C-x C-f /user@somehost:/somedir
ist dies ausreichend, da diesscp
die Standardaustauschmethode ist. Probieren Sie es aus und sehen Sie. Vielleicht können Sie ein paar wichtige Unebenheiten sparen.dired
. Ich benutzeansi-term
solche Befehle, wenn ich keine Emacs hinterlassen möchte. Emacs wurde zur Anpassung entwickelt. Ich bin sicher, dass Sie irgendwann eine Antwort mit einem Lisp-Snippet bekommen werden.Antworten:
Hier ist eine Möglichkeit. Das funktioniert bei mir auf Emacs 23.
Navigieren Sie im Direktmodus zu der Datei, die Sie kopieren möchten.
M-x dired-do-copy
Sie dies tun, werden Sie aufgefordert, einen Speicherort im Minipuffer anzugeben.Erledigt.
quelle