【发布时间】:2013-09-13 11:00:19
【问题描述】:
似乎 dired 没有提供一个接口来根据任意比较器函数对文件/文件夹进行排序。 (默认情况下,它只允许按名称和日期排序)。
为了确定这种排序的机制,我一直在深入研究源代码,我发现是在dired-sort-toggle(在dired.el)中对(revert-buffer) 的调用进行了重新显示。这让我意识到 dired 只是简单地运行带有某些开关的 ls 命令,然后将输出读入缓冲区。
有没有比将 dired 的 ls 函数指向自定义排序更好的方法来实现这种自定义排序?我觉得可能有一个变量在 dired 缓冲区中保存文件/目录的有序列表,我可能会重新排列。
我找到了变量dired-subdir-alist,但这似乎只包含顶级目录(尽管根据文档,这似乎正是我想要的列表)
dired-subdir-alist 是在 `dired.el' 中定义的变量。 文档:子目录及其缓冲区的关联列表 职位。每个子目录都有一个元素:(DIRNAME . STARTMARKER)。 元素的顺序与缓冲区中的顺序相反。在 简单的情况下,这个列表包含一个元素。
我怎样才能找到这样的变量?
【问题讨论】: