这个有点奇怪,如果其他人已经找到答案,我不想惹它。在OS / X(在Snow Leopard和Lion中观察)EMACS 23.3,当我尝试指向我的dropbox目录时,我在ls-lisp-insert-directory中收到以下错误
ls-lisp-insert-directory:格式说明符与参数类型
不匹配
它可以通过其他目录正常工作。
有什么想法吗?
答案 0 :(得分:1)
“ls-lisp-insert-directory”函数(在“ls-lisp.el”中)为Dropbox目录返回的“file-alist”中有一些奇怪的“文件”,它们没有全部“普通”文件属性。这会导致您遇到的错误。您应该将此报告给GNU Emacs开发列表,以便可以正确修复它。在此期间,您可以通过克隆Emacs init文件中的“ls-lisp-insert-directory”函数并将以下“或”代码添加到“fuid”,“fid”的现有“setq”分配中来解决此问题。 “和”文件大小“(”或“确保在值为零的情况下将值初始化为”“或0 - 因为此代码只是试图找到最大值,所以这样做很好)如下:
;; Find the appropriate format for displaying uid, gid, and
;; file size, by finding the longest strings among all the
;; files we are about to display.
(dolist (elt file-alist)
(setq attr (cdr elt)
fuid (or (nth 2 attr) "")
uid-len (if (stringp fuid) (string-width fuid)
(length (format "%d" fuid)))
fgid (or (nth 3 attr) "")
gid-len (if (stringp fgid) (string-width fgid)
(length (format "%d" fgid)))
file-size (or (nth 7 attr) 0))
(if (> uid-len max-uid-len)
您需要确保
(要求'ls-lisp)
重新定义“ls-lisp-insert-directory”函数之前。