Windows上的目录排序错误(使用Cygwin Emacs)
在Windows上的Cygwin Emacs中,在Dired中,如果我尝试按时间排序(例如),我会得到以下错误:Windows上的目录排序错误(使用Cygwin Emacs),windows,emacs,cygwin,dired,Windows,Emacs,Cygwin,Dired,在Windows上的Cygwin Emacs中,在Dired中,如果我尝试按时间排序(例如),我会得到以下错误: insert-directory: Listing directory failed but `access-file' worked 在Windows上的Windows Emacs二进制文件中,我没有任何问题,但Emacs使用自己的lsIIUC实现 我不明白的是,Cygwinls确实理解诸如--dired和-t(按修改时间排序)之类的选项 我的当前配置: ;; Switches
insert-directory: Listing directory failed but `access-file' worked
在Windows上的Windows Emacs二进制文件中,我没有任何问题,但Emacs使用自己的ls
IIUC实现
我不明白的是,Cygwinls
确实理解诸如--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")))
尝试将
目录列表开关设置为“-aFl”
,而不是“-a-F-l”
。也许这会带来一些不同(但对我来说没有任何改变)
ls lisp use insert directory program
的值是多少?如果它是非nil
尝试将其设置为nil
,以便使用ls-lisp而不是Cygwin的ls
。(至少作为一种尝试,你会想坚持下去。)
选项ls lisp仿真
的价值是什么?如果是其他内容,请尝试将其自定义为MS Windows
。(请务必阅读此选项的C-h v
——例如,使用自定义。)
总之,我建议您首先尝试使用ls-lisp而不是Cygwin的ls
让Dired正常工作。这至少会给你一个坚实的动力。如果你愿意,你仍然可以继续解决你的问题,比如说,让它与Cygwin Emacs一起工作。这个“-a-F-l”
字符串适用于Windows Emacs案例,而Dired排序在该版本的Emacs中工作正常。现在,我尝试从第二个字符串中删除选项,该字符串适用于所有其他版本的Emacs,当我删除“--time style=long iso”
时,Dired排序工作正常。但是,我没有我想要的格式的日期…变量ls lisp use insert directory program
在明确要求ls lisp
之前未定义。在(setq ls lisp use insert directory program nil)(require'ls lisp)
之后,它的值现在是t
。不过,在使用ls lisp时,我在Dired缓冲区的开头有奇怪的额外列。请参阅。是否先尝试清除--组目录
?当我添加那个开关时,我看到了你看到的。想必ls-lisp不支持该开关。在-alF
和-a-l-F
之间应该没有区别(我注意到没有),但是谁知道呢?根本的问题似乎与OSX上名为dired排序错误的线程有关:我不知道Cygwin是否可以配置为使用coreutils
,它支持--group directories first
选项。