21

dired-sort-toggle-or-editOS X 10.5 Emacs 23.2では、diredモードで、プレフィックス引数--sort=extensionまたはを使用して並べ替えようとすると-X、次のようになります。

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

そして、diredバッファは空になります。設定してみました

(setq dired-use-ls-dired nil)

しかし、これは効果がありませんでした。dired-sort-toggle-or-edit拡張子による並べ替えは、私のUbuntuボックスでは問題なく機能するようです。誰が何が起こっているのか手がかりを持っていますか?

4

5 に答える 5

17

今のところ、私はまた、を使用して別の解決策を見つけましたls-lisp

(when (eq system-type 'darwin)
  (require 'ls-lisp)
  (setq ls-lisp-use-insert-directory-program nil))
于 2010-11-03T03:24:54.873 に答える
10

OS Xにインストールされているは、またはのような長い引数をlsサポートしていません。設定しても効果はありません。diredは常にlsを使用しますが、その変数がnil以外の場合は、lsに渡されます。-X--sortdired-use-ls-dired--dired

この種のソートが必要な場合は、おそらくfinkのようなものを使用してcoreutilsをインストールできます。これにより、Ubuntuで慣れているものに似たlsが提供されます。

于 2010-11-02T18:49:30.903 に答える
9

coreutils以下は、 MacPortsを介してインストールされたSnowLeopard10.6.8で実行されているEmacsの手順です。

注:私のmacportsのインストールは、一般的な(/opt/...)とは異なります。つまり、/macportsルートとして使用します。ルート設定を変更する必要はありません。それは私の個人的な好みです。バニラマックポートのインストールまたは代替セットアップの場合は、それに応じてパスを調整します。

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.xzfrom:   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")
于 2013-11-17T06:22:53.457 に答える
5

2020年もまだ起こっています!私のように、オープンソースのパッケージマネージャーとしてbrew.emacsを使用している場合、これはファイルにコピーアンドペーストするための適切なソリューションです。

(when (equal system-type 'darwin)
  (setq insert-directory-program "/usr/local/opt/coreutils/libexec/gnubin/ls"))

(Emacs構成を複数のシステムにデプロイしているため、OSを確認します)。

奇妙なことに、これは私が永遠にEmacsを日常的に使用しているMojaveシステムで突然起こり、過去にdiredが機能していたと確信しています。更新によって、手動で設定しなくても、diredが正しいバイナリを使用するようになったものが壊れたと思います。

于 2020-12-02T16:25:01.107 に答える
0

これは、法律家の良い答えと大差ありませんが、わずかに異なる情報があり、Nixパッケージマネージャーを使用する人に合わせて調整されています。

(use-package dired
  :custom
  ;; See http://stackoverflow.com/questions/4115465/emacs-dired-too-much-information
  ;; NOTE: Just some information worth keeping in mind. More readable dired file
  ;; size output - consider adding F (make file type obvious), or p (p adds a
  ;; trailing slash to dirs, but makes moving dirs fail), and G (colorize) too.
  (dired-listing-switches "-alh --group-directories-first")
  :config
  ;; [[https://stackoverflow.com/questions/4076360/error-in-dired-sorting-on-os-x][macos - error in dired sorting on OS X - Stack Overflow]]
  ;; To fix the
  ;; (error "Listing directory failed but 'access-file' worked")
  ;; error. Emacs needs to use gnu's ls, which I get through nixpkgs' coreutils.
  ;; In my config, currently, Emacs is not picking up the path to my nix install
  ;; ls (todo: fix).
  ;;
  ;; Note that, unlike the info at the link provided above,
  ;; --group-directories-first is not needed to fix this error. I just like to
  ;; see the directories first in a dired buffer.
  (setq insert-directory-program (expand-file-name ".nix-profile/bin/ls"
                                                   (getenv "HOME"))))
于 2019-10-11T22:18:27.887 に答える