Emacs の環境変数 LANG が UTF-8 の場合、 Dired の日本語ファイル名の並び順がおかしくなります。
これは Mac OS X の ls が LANG の値を見てランダムな並び順を出力するために起こります。
Emacs の設定ファイルに (setenv "LANG") や (setenv "LANG" "C") などと書けば正常な並び順になります。
普段は LANG=ja_JP.UTF-8 で、 Dired から ls を呼ぶ時だけ LANG=C にするには、以下のように設定します。
(setenv "LANG" "ja_JP.UTF-8") (defadvice insert-directory (around setenv-LANG activate compile) "Set environment variable LANG to C." (let ((process-environment (copy-sequence process-environment))) (setenv "LANG" "C") ad-do-it))
動作確認は Mac OS X 10.6 と GNU Emacs 22 でしています。