Windows 上的 Dired 排序错误(使用 Cygwin Emacs)

Error in Dired sorting on Windows (with Cygwin Emacs)

在 Windows 上的 Cygwin Emacs 中,在 Dired 中,如果我尝试按时间排序(例如),我会收到错误消息:

insert-directory: Listing directory failed but `access-file' worked

在 Windows 上的 Windows Emacs 二进制文件中,我没有任何问题,但 Emacs 使用它自己的 ls IIUC 实现。

我不明白的是 Cygwin ls 确实理解 --dired-t 等选项(按修改时间排序)。

我当前的配置:

;; Switches passed to `ls' for Dired.
(setq dired-listing-switches
      (cond ((eq system-type 'windows-nt) ; Native Windows version of Emacs.
             "-a -F -l")
            (t                            ; Cygwin version of Emacs or ...
             "-a -F --group-directories-first -l --time-style=long-iso")))

尝试将 dired-listing-switches 设置为 "-aFl" 而不是 "-a -F -l"。也许这会有所不同(但对我来说没有任何改变)。

你的 ls-lisp-use-insert-directory-program 值是多少?如果它不是 nil 尝试将它设置为 nil,这样你就可以使用 ls-lisp 而不是 Cygwin 的 ls。 (至少尝试一下,也许你会想坚持下去。)

你的期权价值是多少 ls-lisp-emulation?如果是其他内容,请尝试将其自定义为 MS-Windows。 (请务必阅读此选项的 C-h v - 例如,使用自定义。)

总之,我建议您首先尝试使用 ls-lisp 而不是 Cygwin 的 ls 让 Dired 正常工作。这至少会给你一个坚实的 Dired 来工作。如果您愿意,您仍然可以按照所述继续解决您的问题,即让它与 Cygwin Emacs 一起工作。