arthurgleckler / dired-rsync

Support for rsync from Emacs dired buffers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction

This package adds a single command dired-rsync which allows the user to copy marked files in a dired buffer via rsync. This is useful, especially for large files, because the copy happens in the background and doesn’t lock up Emacs. It is also more efficient than using tramps own encoding methods for moving data between systems.

Configuration is simple as you only need to bind the dired-rsync command to your prefered dired binding.

(use-package dired-rsync
  :config
  (bind-key "C-c C-r" 'dired-rsync dired-mode-map))

Customisation

A variable called dired-rsync-modeline-status is provided for mode lines that will report the number of active rsync operations in progress.

Technical Notes

While you can use rsync to copy files locally the main use case is copying files too/from a remote system. The rsync tool is always run locally as rsync needs working SSH authentication to work. If you can access a remote machine via tramp/ssh without having to enter a password (because ssh-agent is working) then rsync should work fine.

There have been several attempts at doing this but I found them wanting in usability. This attempts to clean up the ideas from:

https://truongtx.me/tmtxt-dired-async.html https://oremacs.com/2016/02/24/dired-rsync/ https://vxlabs.com/2018/03/30/asynchronous-rsync-with-emacs-dired-and-tramp/

in a hopefully cleaner and more idiomatic way.

About

Support for rsync from Emacs dired buffers


Languages

Language:Emacs Lisp 100.0%