« eclipse事始め | Main | Meadowで文字コードを自動認識 »

2003.12.24

emacsのdiredでファイルが読めない問題

emacsのdiredでカーソル行のファイルを選択しても、ファイルが無いといわれて読めないことがある。どうもdiredで表示される日付の形式が英語(C)と違うかららしい。 これを解消するには

1.localeをCにする
2.dired-move-to-filename-regexpを設定する

のどちらかを行う必要があります。1は簡単なので2のほうでやってみます。
2の方法でやるには、以下の内容をdired-mode.elとか適当な名前を付けたファイルに保存して、.emacsで読み込むだけです。

///////////ここから///////////
;; Dired mode の変更
(setq dired-move-to-filename-regexp
      (let* ((l "\\([A-Za-z]\\|[^\0-\177]\\)")
        (month (concat l l "+[.]?,? *"))
        (k "[^\0-\177]")
        (s " ")
        (yyyy "[0-9][0-9][0-9][0-9]")
        (mm "[ 0-1][0-9]")
        (dd "[ 0-3][0-9][.]?")
        (HH:MM "[ 0-2][0-9]:[0-5][0-9]")
        (western (concat "\\(" month s dd "\\|" dd s month "\\)"
               s "\\(" HH:MM "\\|" s "?" yyyy "\\|" yyyy s "\\)"))
        (japanese (concat mm k s dd k s "\\(" s HH:MM "\\|" yyyy k "\\)"))
        (debianjp (concat mm k s dd s "\\(" HH:MM "\\|" s yyyy "\\)")))
    (concat ".*[0-9]" s "\\(" western "\\|" japanese "\\|" debianjp "\\)" s)))
;; vc-dired-mode
(defadvice vc-dired-mode
  (after vc-dired-mode-fix-filname-regexp activate compile)
  (setq dired-move-to-filename-regexp
    (let*
       ((l "\\([A-Za-z]\\|[^\0-\177]\\)")
        (month (concat l l "+ *"))
        (k "[^\0-\177]")
        (s " ")
        (yyyy "[0-9][0-9][0-9][0-9]")
        (mm "[ 0-1][0-9]")
        (dd "[ 0-3][0-9]")
        (HH:MM "[ 0-2][0-9]:[0-5][0-9]")
        (western (concat "\\(" month s dd "\\|" dd s month "\\)"
               s "\\(" HH:MM "\\|" s yyyy"\\|" yyyy s "\\)"))
        (japanese (concat mm k s dd k s "\\(" s HH:MM "\\|" yyyy k "\\)"))
        (debianjp (concat mm k s dd s "\\(" HH:MM "\\|" s yyyy "\\)")))
     (concat s "\\(" western "\\|" japanese "\\|" debianjp "\\)" s))))
///////////ここまで///////////

.emacsで読み込むには
(load "dired-mode.el")
とかします。

|

« eclipse事始め | Main | Meadowで文字コードを自動認識 »

Comments

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference emacsのdiredでファイルが読めない問題:

« eclipse事始め | Main | Meadowで文字コードを自動認識 »