Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Windows 上の Emacs 25.1 rc1 での ls-lisp の動作と dired のファイル表示順番

Windows 上の Emacs ですけど,25.1rc1 で ls-lisp の動作のデフォルトが変更になったのかな?

dired を起動すると . (ドット) で始まるファイル名と通常のファイル名のファイルが混在する形になっているね.

-rw-rw-rw-  1 matsuki user      669 2015-07-19  bash.exe.stackdump
-rw-rw-rw-  1 matsuki user     6539 08-23 21:41 .bash_history
-rw-rw-rw-  1 matsuki user      144 2014-07-08  .bashrc.orig
-rw-rw-rw-  1 matsuki user      402 08-20 17:26 desktop.ini
-rw-rw-rw-  1 matsuki user      816 03-17 04:13 .folders

な感じに....

修正したいな....ということで,個人的な環境だけど,cygwin が入っていて,普通に ls コマンドを使える環境なので ls-lisp は使わない形に環境設定.

(setq ls-lisp-use-insert-directory-program t)

で良いのかな?

上記設定で . (ドット) で始まるファイル名のファイルは先頭に固めて表示されるようになりました.ばっちりと思ったら,日本語ファイル名が文字化けしてるのね.LANG が C で ls が実行されているみたい.ぐぬぬぬ.

ならばとデフォルト環境を

(set-language-environment  'utf-8)

にすると dired の表示はオッケーだけど,日本語ディレクトリをたどれない.また日本語入力も駄目.まぁ,当然か.

ならばと

(print insert-directory-program)
"ls"

となっているのを "env LANG=ja_JP.UTF-8 ls" などにしてみたけど,「そんなコマンドありませんぜー」ってエラー.cmd.exe 経由で呼び出されるので,一旦 bash を踏み台にしないといけないのかな?でもそれはちょっとイマイチだなぁ.ということで,ls コマンドを使うのをあきらめて,やっぱり ls-lisp を使いこなす方針に.

ls -al の挙動が変わっているようなので,-U をつけてみればどうなるかな?と思って

(setq dired-listing-switches "-alU")

にしてみたら,無事,. (ドット) で始まるファイル名のファイルは先頭に固めて表示されるようになりました.ざっと動作チェックした限りでは日本語ディレクトリもたどれるし,日本語ファイルもオープンできているようなのでこれで対処方法はいいのかな?

参考までに,ls-lisp のドキュメント詳細は https://www.gnu.org/software/emacs/manual/html_node/emacs/ls-in-Lisp.html あたりにありますので,細かいことが知りたい場合には参考にしてみてください.

あ,タイトルに emacs 25.1 rc1 って書いてますけど,rc2 でも同じ動作していましたです.はい.