2011-02-09

Dired で選択範囲にマークを付ける

リージョン指定してマークを付ける。
C-u 付きで選択範囲のマークを消す。

dired-mark-files-in-region という関数があるのでそれを利用した。
キーバインドは一例です。

(defun dired-mark-region (start end &optional arg)
  "Mark all files in region.
With prefix argument, unflag all those files."
  (interactive "r\nP")
  (let ((dired-marker-char (if arg ?\040 ?*))) ; \040 = SPC
    (dired-mark-files-in-region
     (save-excursion
       (goto-char start)
       (line-beginning-position))
     end)))

(eval-after-load "dired"
  '(define-key dired-mode-map "*r" 'dired-mark-region))