1

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

我想抛弃 Dired 显示中的所有内容,除了文件名、大小和日期。 这个问题向我展示了如何使用 ls-lisp-verbosity 删除大部分我不想要的细节。

但我还没有找到不显示权限的方法。我检查了lsdir的文档,似乎没有“不显示权限”的标志。到目前为止,我还没有在 Dired 中找到任何会忽略权限的内容。这可以做到吗?

4

1 回答 1

1

您最好的选择是更改ls开关,以便 Dired 不会列出这些字段。查看M-x man ls您的特定平台,了解您ls可以使用哪些开关。

dired-details.eldired-details+.el如果您拥有 Emacs 24.4(或预发布的开发快照),则不再需要(and )。只需用于(在显示和隐藏细节之间切换。

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

如果更改ls开关对您的情况没有帮助,那么您需要dired-details-make-current-line-overlaydired-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 表示。

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

但同样,最好的方法,如果它做你想要的,是尝试使用ls开关来控制首先列出哪些字段。您可以通过使用前缀参数轻松地试验开关C-x d- 系统会提示您使用开关。

于 2014-09-27T18:54:36.137 回答