Dired:不显示文件权限

时间:2012-08-11 01:47:56

标签: emacs permissions dired

在我的新工作中,我在Windows上使用Emacs 24,在这些特殊情况下它的主要用途是作为文件管理器。

除了文件名,大小和日期之外,我想从Dired显示屏中删除所有内容。 This question向我展示了如何使用ls-lisp-verbosity来删除我不想要的大部分细节。

但我还没有找到一种方法来阻止显示权限。我已经检查了 ls dir 的文档,并且似乎没有“不显示权限”的标志。到目前为止,我还没有在Dired中找到任何会省略权限的内容。可以这样做吗?

1 个答案:

答案 0 :(得分:1)

您最好的选择是更改ls个开关,以便Dired不会列出这些字段。有关您的特定平台的信息,请参阅M-x man ls,了解您可以使用的ls个切换器。

如果您拥有Emacs 24.4(或预发布开发快照),则不再需要

dired-details.el(和dired-details+.el)。只需使用(在显示和隐藏详细信息之间切换。

在这种情况下,您至少有两个选项可以控制符号链接目标或除标题和文件行之外的所有行是否被视为要隐藏的细节:dired-hide-details-hide-symlink-targetsdired-hide-details-hide-information-lines

如果更改ls开关对您的情况没有帮助,那么您需要从dired-details-make-current-line-overlay调整函数dired-details.el。要隐藏的详细信息由第一个cond子句决定,这是(包含在ignore-errors中):

(dired-move-to-filename t)

该指针移动到文件名的开头。下一行是:

 (make-overlay (+ 2 bol) (point))

从行的开头(此处为bol)到文件名的开头(point)创建不可见性叠加层。

如果您想要不同的东西,那么您需要获得所需的叠加限制。例如,如果您希望不可见性从文件大小开始,那么您将使用正则表达式搜索,该正则表达式可以找到文件大小的开头。

你可以通过dired-move-to-filename-regexp的正则表达式(在库dired.el中)来提供这样的正则表达式。它是一个非常复杂的正则表达式,它匹配文件名以外的所有内容。但您可以使用它来查找日期+时间部分,它是第7个匹配的正则表达式子组或第2个,具体取决于日期+时间是使用区域设置(西方还是东方)表示还是使用ISO表示。

您可以在定义库dired+.el的变量diredp-font-lock-keywords-1的代码中看到这是如何处理的。

但同样,最好的方法是,如果它能够满足您的需求,那就是尝试使用ls开关来控制首先列出的字段。您可以使用带有C-x d的前缀参数轻松地尝试使用开关 - 系统会提示您输入要使用的开关。