In Emacs’ Dired, You could conveniently move files from outside into Emacs by simply dragging them there.
That is effective.
Emacs has been my faithful companion for over 5 years, and I just stumbled upon this remarkable feature minutes ago.
Typically, I rely on async-shell-commands to open the current buffer directory in Windows 10’s File Manager, then move files from folder to folder.
But, now, this seeming-trival discovery has greatly enhanced my workflow, instill in me a strong sence that Emacs not only coexists within the operating system, but rather embodies the operating system itself.
While it is true that Windows does not support dragging files to external locations, I seldom encounter such a requirement in my day-to-day workflows.
Have you ever had such an experience? Discovered an amazing feature after a long time using Emacs?
The mouse does seem to work in dired, it’s just that it does emacs things, not OS things. :)
For example, on Windows, I can drag a file from the Windows Explorer and drop it into dired and it copies the file – as OP observed. (Thanks for that, it’s nice!)
But for the reverse, if I click on a file in dired and drag, it highlights a region, because click-and-drag in emacs does that. Likewise left-clicking on a file opens the file…in emacs, because that’s what hitting RET would do when point is on the same line.
(There is a nice right-click context menu in dired, but it doesn’t include anything for
browse-url-of-dired-file
– bound toW
– which for the most part opens a file using the default Windows application.)Set `dired-mouse-drag-files` to t, and you can also drag file from dired to other programs!
Yes, it not support Windows temporarily:
This feature is supported only on X Windows, Haiku, and Nextstep (macOS or GNUstep
That does not matter at all, I rarely have such a requirement to move file out from emacs, since it could easily move around within Emacs.
This feature is supported only on X Windows
Friendly correction: It’s called the X Window System, X11, or simply X (Xorg now being the standard implementation of it). I tell you this only because if you call it “X Windows” it sounds like you don’t know better. :)
Yes, I understand it better now.
Doesn’t seem to work with PGTK for me.
PGTK
thank you, I will try it.
if i have two dired splits, can i drag a file from one to the other this way?
Is this only in Emacs 29 or have I really never known this existed for this long???
You can drag files into many different places and have the drop action do different things. The compose email interface will automatically attach the dragged files as attachments.
Another minor point: if you use VMWare workstation as I do, you can drag files from the host straight into an Emacs buffer. I’m sure this also works for other hypervisors like Virtualbox.
wow! thank you for that cool feature :) 8 years with Emacs and dont know about it :)
instill in me a strong sence that Emacs not only coexists within the operating system, but rather embodies the operating system itself.
It just implements being a drag-and-drop target; it does not “coexist within the operating system”
While it is true that Windows does not support dragging files from dired buffer to external locations, but I seldom encounter such a requirement in my day-to-day workflows.
Windows folders support being a drop-target; this is likely emacs not supporting /its/ side of the protocol.Ah, I see the
dired-mouse-drag-files
note, below.Still an absolute beginner but was hyped yesterday when I used “SPC m e l o” in Doom Emacs to export an Org file to PDF and opened it in an Emacs buffer and the PDF file looked amazing right off the bat. This moment was so awesome! How can it just work so smoothly? Already fell in love with this OS ;)
agreed, this OS is amazing.
The dragging also works here on windows with emacs 27.1 where tramp default method is set to plink (with putty’s plink.exe in windows executable path
Thank you for the information provided. This confirms that it is indeed not a new feature of version 29.
I think everyone has had that kind of experience :)