Emacs Dired: copiando para a pasta atual

5

Em Dired, a cópia é feita como "copie os arquivos marcados para outro lugar". Existe uma maneira de fazer isso na direção oposta?

Isto é, no cenário eu imagino que eu teria uma pergunta what para copiar (caminho), e seria copiado / symlinked no diretório atual. (Em um modo "vamos coletar todas as coisas necessárias para executar um comando em um lugar", por exemplo).

    
por Latanius 16.10.2012 / 07:47

3 respostas

2

M-x copy-file O RET solicitará o arquivo de origem e, em seguida, assumirá como padrão o diretório atual. Você poderia ligar isso a uma chave.

Ou, se isso não for bom o suficiente, deixe-me saber e eu vou escrever o comando e postá-lo.

Eh, eu tive algum tempo, então aqui está o comando:

(defun dired-copy-file-here (file)
  (interactive "fCopy file: ")
  (copy-file file default-directory))
(eval-after-load "dired"
  '(define-key dired-mode-map "\M-c" 'dired-copy-file-here))
    
por 22.10.2012 / 21:19
2

Como Aurélien menciona, a única vantagem que você ganha de estar em um buffer Dired específico parece ser . significa "aqui", então ir para um shell cp é quase tudo que você pode fazer.

A outra vantagem que vem à minha mente é, se você tiver outro buffer dired visível ( Cx 2 ..), quando você move / copy / link do buffer em que você está (a partir do qual você seleciona todos os seus arquivos), o emacs fornece alguns destinos padrão como destinos, que podem ser acessados com a seta <down> quando você é solicitado no minibuffer.

Digamos que você tenha 2 buffers direcionados abertos, ~/here/ e ~/elsewhere/someplace/ , depois selecionando alguns arquivos em ~/here/ , pressionando C nesse buffer, então deve fornecer a opção padrão para copiar o material para ~/elsewhere/someplace/ . O mesmo para arquivos únicos, você obtém o diretório padrão e o diretório padrão + nome do arquivo (por exemplo, ~/here/some long annoying filename you'd like to edit.any~/elsewhere/someplace/some long annoying filename you'd like to edit.any ).

Basta pressionar novamente para mais padrões.

    
por 22.10.2012 / 20:36
0

Você pode fazer algo parecido com

M-!

para executar um comando shell e, em seguida,

cp -r what_to_copy(path) ./
    
por 20.10.2012 / 06:33

Tags