【问题标题】:How to make dired 'adopt' some useful function from Total command如何从 Total 命令中“采用”一些有用的功能
【发布时间】:2015-03-05 14:46:01
【问题描述】:

在total命令中,Ctrl+B会显示当前目录下的ALL文件,会在当前窗口递归列出子目录下的文件。

-- 我知道在 emacs dired 中,我们可以点击运行 'dired-maybe-insert-subdir' 的 'i' 将文件列表从 ONE 子目录插入到当前 dired 缓冲区,所以问题是,如何编写一个函数模仿总命令'insert-all-subdir'的行为?

total 命令的另一个好处是,Ctrl+f10 和 Ctrl+f12 将使我们能够从显示全部且仅显示某些具有特定扩展名的文件(例如“仅显示全部*.mp3 文件!')

-- 我的感觉是,也许我们可以调整 dired-omit 来模仿这个?

同样在total命令中,可以设置规则突出显示1天内修改/访问的文件(例如显示为红色)(日期由用户设置),便于区分那些久违的旧文件。

-- 我不知道如何实现,我猜是写一个函数以某种方式将访问/修改时间与“ls”选项联系起来?

【问题讨论】:

  • 请针对您的每个问题发布单独的问题。答案可能大相径庭。

标签: emacs dired total-commander


【解决方案1】:

Dired+ 可以帮忙。

  • 对于insert-all-subdir:使用M-+ M-i(命令diredp-insert-subdirs-recursive - 菜单多个 > 标记在此处和下方 > 插入子目录)。

    如果没有标记文件或子目录(同样,对于显示任何后代目录的任何 Dired 缓冲区),则插入 所有 子目录及其后代。

  • 要仅显示具有给定扩展名的文件,请使用 * .(菜单 Mark > Mark Extension)标记具有给定扩展名的文件。然后使用 diredp-omit-unmarked,仅显示具有该扩展名的文件。 (这未绑定到键,但在菜单 Mark > Omit Unmarked 中。)

要突出显示晚于某个日期修改的文件,您可以修改变量diredp-font-lock-keywords-1 的值。还要记住,您可以轻松地按日期等进行排序。人们通常会这样做,以便轻松查看最近修改的文件。

【讨论】:

  • 非常感谢这些提示。另一种方法是查看sunrise-commander,(它似乎有很多功能,--我正在研究它)
  • 我的 emacs 没有你建议的那个,(menu Multiple > Marked Here and below > Insert Subdirs),可能你加载了一些我没有的包?此外,M-+ 在我的 Emacs 中没有定义。好像我只有 dired+, dired-details, dired-tar,还有其他你推荐的好东西吗?
  • 您确定您有 dired+.el(例如,不仅仅是dired-x.el)吗?如果您使用的Dired+ 比 2011 年更新,您应该有该菜单。您有命令 diredp-insert-subdirs-recursive 吗?这就是该菜单项调用的命令。
  • 嗨 Drew,是的,我的版本很旧。所以我刚刚更新到最新版本,其中包含更多有用的功能,(就像我已经看到彩色文件列表一样,谢谢!)。不过好像有bug,Symbol的函数定义是void:toggle-dired-find-file-reuse-dir,elpa版和github版都试过了,这个bug都存在版本。虽然我看到错误报告已经存在于 emacswiki 页面中,但它仍然存在。我的 emacs 版本是“bob.porkrind.org 上 2013-03-13 的 GNU Emacs 24.3.1 (x86_64-apple-darwin, NS apple-appkit-1038.36)”
  • 据我所知,在 Dired+ 或任何原版 Dired 文件或任何原版 Emacs 文件中 没有这样的功能告诉,包括在您的 Emacs 版本中,24.3.1。 您正在加载什么代码 正在调用它(并因此引发错误)? 使用非零debug-on-error 获取回溯时引发错误。您指的是哪个 EmacsWiki 页面(以及该页面的哪个位置)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多