gpt4 book ai didi

emacs - 按完整路径排序文件

转载 作者:行者123 更新时间:2023-12-04 05:21:24 28 4
gpt4 key购买 nike

我正在使用 find-name-dired 来查找具有相同名称(称为 foo.txt)但位于不同目录中的多个文件实例。我想要按文件路径的字母顺序列出的文件。但是,它们以看似随机的顺序列出。都没有 dired-sort-menu也不是 dired-sort-chiesa将对 find-name-dired 的输出进行排序,即使它适用于其他 dired 缓冲区(其格式看起来非常相似)。如果我将 dired 缓冲区的内容写入文件,我可以打开一个 shell 并将文件提交给 shell 中使用第 9 个字段(路径)作为键的排序命令。这会产生看起来正确的输出,但当然它不再是一个可怕的缓冲区。

有没有办法让我可以

  • 读入外部排序的文件并以直接的“模式”(类似于编译模式)打开它,
  • 在仍处于 dired 模式时对 find-name-dired 的输出进行排序,或
  • 从 find-name-dired 生成从一开始就按照我想要的方式排序的输出?

  • 更新:

    为了让事情更具体一点,这是当前的缓冲区:
    /home/afrankel/Documents/emacs_test/:
    find . \( -iname foo.txt \) -exec ls -ld \{\} \;
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 a/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 b/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 d/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 c/z/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 c/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 f/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 e/foo.txt

    find finished at Fri Nov 30 17:00:41

    按“s”(这将对大多数dired缓冲区进行排序)会给出错误“无法对这个dired缓冲区进行排序”。

    我希望缓冲区看起来像这样:
    /home/afrankel/Documents/emacs_test/:
    find . \( -iname foo.txt \) -exec ls -ld \{\} \;
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 a/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 b/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 c/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 c/z/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 d/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 e/foo.txt
    -rw-r--r-- 1 afrankel users 4 Nov 30 16:59 f/foo.txt

    find finished at Fri Nov 30 17:00:41

    最佳答案

    当您在“正常” Dired 缓冲区中键入 s 时,Dired 实际上不会对缓冲区进行排序。它所做的是改变dired-actual-switches的值以便它包含(或不包含)-t选项(“按修改时间排序”)然后调用 revert-buffer重新运行 ls使用新选项。这显然在运行 find 产生的 Dired 缓冲区中不起作用。 .

    你需要做的是安排运行 find-s选项:

     -s      Cause find to traverse the file hierarchies in lexicographical
    order, i.e., alphabetical order within each directory.

    您可以通过评估来执行(对于所有 find-dired 命令)
    (setq find-program "find -s")

    关于emacs - 按完整路径排序文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650776/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com