Как вы копируете файлы с удаленного сервера в локальную папку в emacs, используя dired / tramp?

9

Когда я использую tramp для открытия удаленного каталога (скажем, Cx Cf / ssh: user @ example: / somedirectory), он открывает буфер для этого удаленного каталога. Проблема в том, что я хочу скопировать каталоги и / или файлы с удаленного сервера на мой локальный компьютер. Я пробовал несколько синтаксисов, таких как маркировка всех каталогов или файлов, нажатие клавиши 'C' и указание local: / somelocaldir или просто / somelocaldir, но в лучшем случае файлы копируются в файл где-нибудь на удаленном сервере.

Есть ли способ скопировать файлы из удаленного буфера (tramp) в локальный каталог? Я использую emacs только 6 месяцев, поэтому, если есть совершенно другой подход, который лучше и все же позволяет мне использовать emacs (предпочтительно w / dired), это было бы здорово.

Просто чтобы уточнить, я не заинтересован в просмотре, редактировании, распечатке и т. Д. Удаленных файлов. Я просто хочу скопировать файлы с удаленного сервера на мой локальный компьютер, с тем же эффектом, который вы получите, если бы использовали scp или scp -r. Я просто надеюсь, что смогу сделать это без необходимости выпадать из emacs или даже использовать eshell (но я, вероятно, просто буду делать это, пока не получу ответ здесь).

лабиринт
источник
В большинстве установок, которые я видел, этого C-x C-f /user@somehost:/somedirдостаточно, так scpкак это метод обмена по умолчанию. Попробуйте и посмотрите. Может быть, вы можете сохранить несколько ключевых ударов.
Ephsmith
Это просто открывает Dired буфер. На самом деле он не копирует каталог, например «scp -r user @ somehost: / somedir». сделал бы.
Лабиринт
Теперь я понимаю ваш вопрос более четко. Название вопроса заставило меня подумать, что вы хотите скопировать файлы напрямую dired. Я использую ansi-termтакие команды, если не хочу покидать emacs. Emacs был построен для настройки. Я уверен, что в какой-то момент вы получите ответ с фрагментом кода.
Ephsmith

Ответы:

8

Вот один из способов. Это работает для меня на Emacs 23.

В режиме Dired перейдите к файлу, который вы хотите скопировать.

  1. Нажмите, Mчтобы отметить файл.
  2. Сделайте, M-x dired-do-copyи вам будет предложено указать местоположение в мини-буфере.
  3. Измените местоположение на локальное местоположение, в которое вы хотите скопировать, и нажмите "Enter".

Выполнено.

ephsmith
источник