dired は、任意の比較機能に従ってファイル/フォルダーをソートするためのインターフェースを提供していないようです。(デフォルトでは、名前と日付による並べ替えのみが許可されています)。
この並べ替えのメカニズムを特定するためにソース コードを調べたところ、再表示を行うのは(revert-buffer)
in dired-sort-toggle
(in ) の呼び出しであることがわかりました。dired.el
これにより、dired は単純に特定のスイッチを指定して ls コマンドを実行し、出力をバッファーに読み込むことがわかりました。
diredのls関数をカスタムのものに向けるよりも、このカスタムソートを達成するためのより良い方法はありますか? dired バッファー内のファイル/ディレクトリの順序付きリストを保持する変数が存在する可能性があると感じています。これを再配置する可能性があります。
変数を見つけましたdired-subdir-alist
が、これにはトップディレクトリのみが含まれているようです(ドキュメントによると、これはまさに私が望むリストのようです)
dired-subdir-alist は、`dired.el' で定義されている変数です。ドキュメンテーション: サブディレクトリとそのバッファ位置の関連リスト。各サブディレクトリには要素 (DIRNAME . STARTMARKER) があります。要素の順序は、バッファ内の順序の逆です。単純なケースでは、このリストには 1 つの要素が含まれます。
どうすればそのような変数を見つけることができますか?