dired をさらに快適に

細かいですが dired をさらに快適にする工夫を紹介します。

1.まずはsorterのインストール

sorter — diredを参考に設定&インストールしてください。


sorter は dired で「s」キーを押すと

  • 日付によるソート
  • 拡張子によるソート
  • サイズによるソート
  • ファイル名によるソート

をトグルしてくれる、超便利な機能です。

2.今日編集したファイルを目立たせる

dired で見たときに今日編集したファイルが目立っているとうれしいですよね。
diredを参考に以下のように設定しました。

(defface my-face-f-2 '((t (:foreground "yellow"))) nil)
(defvar my-face-f-2 'my-face-f-2)
(defun my-dired-today-search (arg)
  "Fontlock search function for dired."
  (search-forward-regexp
   (concat (format-time-string "%Y-%m-%d" (current-time)) " [0-9]....") arg t))

(add-hook 'dired-mode-hook
          '(lambda ()
             (font-lock-add-keywords
              major-mode
              (list
               '(my-dired-today-search . my-face-f-2)
            ))))

3.ファイルサイズを分かりやすく

dired は各ファイルのサイズを表示してくれるのですが

/home/taro:
合計 572
-rwxr-xr-x  1 taro taro 223238 2006-12-29 12:48 .zhistory
-rw-------  1 taro taro  56092 2006-12-29 14:24 .session

のように、ぱっと見サイズがわかりにくいです。
dired は ls -la の内容を表示しているのですが、ls -alh だと良いですよね。


dired には dired-listing-switches という変数があって、これに「-h」を追加すれば良さそうなのですが。
どうも前述の sorter と相性が悪いみたいです。

そこで汚いですが、以下のように書いてみました。

;; dired + sorter 時に ls の -h オプションを付加する
(defadvice dired-sort-other
  (around dired-sort-other-h activate)
  (ad-set-arg 0 (concat (ad-get-arg 0) "h"))
  ad-do-it
  (setq dired-actual-switches (dired-replace-in-string "h" "" dired-actual-switches)))

まとめ

  • s で簡単ソート
  • ファイルサイズも分かりやすい
  • 今日編集したファイルが色で分かる

以上3点を使うと以下のように幸せになれます。みなさん dired をもっと活用しましょう。