Quando uso o tramp para abrir um diretório remoto (por exemplo, Cx Cf / ssh: usuário @ exemplo: / somedirectory), ele abre um buffer direcionado para esse diretório remoto. O problema é que eu quero copiar diretórios e / ou arquivos do servidor remoto para minha máquina local. Tentei algumas sintaxes, como marcar todo o diretório ou arquivos, pressionar 'C' e especificar local: / somelocaldir ou apenas / somelocaldir, mas, na melhor das hipóteses, os arquivos são copiados para um arquivo em algum lugar do servidor remoto.
Existe uma maneira de copiar arquivos de um buffer direcionado remoto (tramp) para um dir local? Eu só uso o emacs há 6 meses, por isso, se houver uma abordagem completamente diferente que seja melhor e ainda me permita usar o emacs (de preferência com direcional), isso seria ótimo.
Só para esclarecer, não estou interessado em visualizar, editar, listar etc. arquivos remotos. Eu só quero copiar arquivos de um servidor remoto para minha máquina local, com o mesmo efeito que você obteria se tivesse usado scp ou scp -r. Eu só espero que eu possa fazer isso sem ter que abandonar o emacs ou até mesmo usar o eshell (mas provavelmente vou fazer isso até obter uma resposta aqui).
C-x C-f /user@somehost:/somedir
é suficiente, poisscp
é o método de troca padrão. Experimente e veja. Talvez você possa salvar alguns impactos importantes.dired
. Eu usoansi-term
para comandos como esse se não quiser sair do emacs. O Emacs foi construído para personalização. Tenho certeza de que você receberá uma resposta com um snippet lisp em algum momento.Respostas:
Aqui está uma maneira. Isso funciona para mim no emacs 23.
No modo direcionado, navegue até o arquivo que você deseja copiar.
M-x dired-do-copy
e você será solicitado a encontrar um local no mini-buffer.Feito.
fonte