Dired におけるファイル名の順番
Emacs の ファイルブラウザ dired では、ファイルの並び順を “s” キーで切り 替える。
切り替え順をアルファベット順・日付順の他にサイズ順やファイルの種類順で 切り替えられるようにする。
GNU ls のインストール
Mac に標準で付属する “ls” 命令は、ファイルを種類順で並び替えることがで きない (-Xオプション)。MacPorts 等で、GNU ls をインストールする。
% sudo port install coreutils +with_default_names
オプション +with_default_names
を付けておかないと、ls命令は “gls” 命
令としてインストールされる。glsの方が良い場合は init.el に以下のように
書く。
(when (executable-find "gls") (setq insert-directory-program "gls"))
dired の sort命令の拡張
以下に、 dired-toggle-sort
を拡張した、 dired-rotate-sort
を示す。
この命令で、 dired-mode-map
の “s” キーバインドを置き換える。これで
“s”キーを押すたびに、diredのファイルの並び順を アルファベット順・更新
時間順・拡張子順・サイズ順に切り替わる。
;; dired の sort を拡張する。 (defvar dired-sort-order '("" "t" "S" "X") "-t (時間) -X (拡張子) -S (サイズ) なし (アルファベット順) を切り替える。") (defvar dired-sort-order-position 0) (defun dired-rotate-sort () "Rotate dired toggle sorting order by `dired-sort-order'" (interactive) (setq dired-sort-order-position (% (1+ dired-sort-order-position) (length dired-sort-order))) (setq dired-actual-switches (concat dired-listing-switches (elt dired-sort-order dired-sort-order-position))) (dired-sort-other dired-actual-switches)) (define-key dired-mode-map "s" 'dired-rotate-sort)