dired使用过程中性能的问题

看到许多人在讨论 dired的问题https://emacs-china.org/t/dirvish-dired/20189, 我也把我在近一两年一直困扰我的问题提出来,看看各位大佬在使用过程中是不是有这些问题。本人是dired重度使用者,除了极个别情况下需要看一些图片,才会用到一些外部的文件管理系统.

  • 文件复制的问题。第一,假如文件很大,比如,100G多,这个时候打开emacs两个窗口进行复制,会卡死,能否有比较成熟的异步方案?当然目前好像也有一些插件,但是好像之前在使用过程中也会有问题。第二,在真正工作过程中,往往会打开许许多多的buffer,如何快速选中目的目录进行复制?总不能很理想化的打开两个目录,一个是source dir,另外一个是target dir。在工作中,最好是最快的速度进行复制,不然容易打断进行中的工作流啊。
  • 打开许多文件的目录卡顿的问题。特别是现在深度学习广泛使用的今天,数据 也是非常庞大,比如,一个目录下有10万个文件(一级目录),此时打开这个文件夹是会有卡顿的。这个问题有比较好的解决方案吗?比如,先进行判断,只显示前1000个文件。

第一个可以使用 consult-dir 在minibuffer 中切换到目标文件夹。但是还是没有两个并排的快。

文件复制的问题。第一,假如文件很大,比如,100G多,这个时候打开emacs两个窗口进行复制,会卡死,能否有比较成熟的异步方案?

dirvish 有个插件叫 dirvish-yank, 你可以试试看。用 mv 和 cp 在 subprocess 复制粘贴的,我自己反正天天用,不会卡住 Emacs

第二,在真正工作过程中,往往会打开许许多多的buffer,如何快速选中目的目录进行复制?总不能很理想化的打开两个目录,一个是source dir,另外一个是target dir。在工作中,最好是最快的速度进行复制,不然容易打断进行中的工作流啊。

dirvish-yank 不会像 dired-do-copy 那样让你选目标文件夹。 你就 dired-mark 标记文件,然后到目标文件夹 (比如通过 dirvish-goto-bookmark), 然后 dirvish-yank, 完事想回去就 dirvish-other-buffer

打开许多文件的目录卡顿的问题。特别是现在深度学习广泛使用的今天,数据 也是非常庞大,比如,一个目录下有10万个文件(一级目录),此时打开这个文件夹是会有卡顿的。这个问题有比较好的解决方案吗?比如,先进行判断,只显示前1000个文件。

我刚测试了下 dired 里打开一个 100000+ 的文件夹大约 1 ~ 2 秒,是能感觉卡顿,但是打开一次放在那里不就行了吗?

Edit: 我试了一下 ranger 和 lf, 可以秒开,但是实际上他们是提前缓存了,直接开大文件夹还是要等。这样看来 dired 是有可能实现类似的效果的。

关于大文件复制问题,有dired-asyncdired-rsync,不知道能否满足你需要?