Dropbox上的OSX EMACS dired错误

时间:2011-08-30 17:31:37

标签: emacs osx-lion

这个有点奇怪,如果其他人已经找到答案,我不想惹它。在OS / X(在Snow Leopard和Lion中观察)EMACS 23.3,当我尝试指向我的dropbox目录时,我在ls-lisp-insert-directory中收到以下错误

  

ls-lisp-insert-directory:格式说明符与参数类型

不匹配

它可以通过其他目录正常工作。

有什么想法吗?

1 个答案:

答案 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”函数之前。