ошибка в dired сортировке на OS X - PullRequest
11 голосов
/ 02 ноября 2010

В OS X 10.5 Emacs 23.2, в режиме dired, если я пытаюсь отсортировать по dired-sort-toggle-or-edit с префиксным аргументом --sort=extension или -X, я получаю:

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

и буфер с задержкой становится пустым. Я попытался установить

(setq dired-use-ls-dired nil)

но это не имело никакого эффекта. dired-sort-toggle-or-edit и сортировка по расширению работает нормально на моем Ubuntu-боксе. Кто-нибудь знает, что происходит?

Ответы [ 3 ]

12 голосов
/ 03 ноября 2010

На данный момент я также нашел другое решение, используя ls-lisp

(when (eq system-type 'darwin)
  (require 'ls-lisp)
  (setq ls-lisp-use-insert-directory-program nil))
8 голосов
/ 02 ноября 2010

ls, установленный в OS X, не поддерживает -X или любые длинные аргументы, такие как --sort. Установка dired-use-ls-dired не будет иметь никакого эффекта; dired всегда будет использовать ls, но если эта переменная не равна nil, она передаст --dired в ls.

Если вам нужен такой тип сортировки, вы, вероятно, можете использовать что-то вроде fink для установки coreutils, что обеспечит ls больше того, что вы привыкли в Ubuntu.

7 голосов
/ 17 ноября 2013

Вот шаги для Emacs, работающего на Snow Leopard 10.6.8 с использованием coreutils, установленного через macports:

ПРИМЕЧАНИЕ: моя установка macports отличается от универсальной (/opt/...) - т.е. яиспользуйте /macports в качестве корня.Изменение настроек root не требуется, это мое личное предпочтение.Для установок vanilla macport или альтернативных установок измените путь соответствующим образом.

sudo /macports/bin/port install coreutils

Это относится к .emacs или init.el:

;; sort directories first

(setq insert-directory-program "/macports/bin/gls")

(setq dired-listing-switches "-aBhl --group-directories-first")

ПРИМЕЧАНИЕ. Использование символической ссылки для gls / ls не рекомендуется , так как он нарушает функциональность при установке macports и, скорее всего, других вещей.


Альтернативная установка для пользователей, которым требуется больше контроля:

Загрузка: coreutils-8.21.tar.xz с: http://ftp.gnu.org/gnu/coreutils/

Если у вас нет утилиты для распаковки*.xz файл, вы можете использовать утилиту, такую ​​как TheUnarchiver3.9.1.

Вот краткий справочник, чтобы сделать coreutils - я установил место установки в качестве своего личного предпочтения вместо значения по умолчанию:

./configure \
--prefix=/Users/HOME/.0.data/.0.emacs/elpa

make

sudo make install

Вставьте их в файл .emacs или init.el - скорректируйте путь соответствующим образом:

;; sort directories first

(setq insert-directory-program "/Users/HOME/.0.data/.0.emacs/elpa/bin/ls")

(setq dired-listing-switches "-aBhl --group-directories-first")
...