mouse-drag-and-drop-cross-program 和 dired-mouse-drag-files

我最近添加了两个选项,开启后能够将文件和文字从 Emacs 拖放至其他应用中。它们分别为:

  • `dired-mouse-drag-files’,开启后可以使用鼠标拖动 dired 中的文件连接,并拖放到任意窗口之上。
  • `mouse-drag-and-drop-cross-program’,和 `mouse-drag-and-drop-region’ 同时开启即可使用鼠标拖动选择区中的文字,并拖放到任意其他窗口之上。

目前全面支持 X11, macOS 和 Haiku 平台,暂时不支持 PGTK。首先希望社区能够帮忙验证这些选项的可用性和发现并报告 bug。其次,我来自 X11 背景,不是很了解 mac 平台,如果您在 mac 上遇到比较琐碎的 bug,敬请原谅。

我已经尝试过为 MS Windows 实现以上的功能,却没有找到详细的API说明,也不清楚 OLE 和 COM 是什么,C 语言下如何使用(win32 的 drag and drop API 好像只有 C++ 能调用),所以近期不会实现。如果有懂行的对此感兴趣,Emacs 开发团队自然会非常欢迎补丁。

由于 X11 的拖放协议不容易模拟,目前没有任何 DE 下支持从 Xwayland 应用中拖动数据,因此 Wayland 用户在 PGTK 支持之前无法使用这些功能。

20 个赞

非常感谢!之前试用的时候发现有些程序拖不了,现在好像都可以了。请问有没有可能支持多个文件的拖拽呢? 我试了一下单个文件是可以的,但是无论是通过 dired 标记的文件还是鼠标选择的选区都没效果,只能一次一个文件。有了这个真的可以告别其他的 GUI 文件管理器了。

目前确实只支持一个文件,我会尽快改正。感谢报告。

1 个赞

X11 和 Haiku 下能拖动多个被 mark 的文件了。Mac 暂时不支持。

3 个赞

谢谢,试过了一切正常 (X11),已经把 nautilus 这个大家伙卸载了。

Mac 下也能拖动多个文件了。

1 个赞