2

Я сделал dired и dired+ setup для просмотра списков каталогов и использую его в качестве файлового менеджера для перемещения / копирования файлов. В настоящее время dired указывает «0» как размер для всех подкаталогов в любом каталоге.

Я бы хотел посчитать и отобразить размеры папок. Я хотел бы, чтобы это было связано с нажатием клавиши / щелчком мыши, так как я не хочу, чтобы это делали на каждой папке в каждом буфере.

На данный момент у меня есть "open in explorer" (w32-shell-execute в windows и gnome-open в gnome), привязанный к "O", из которого я использую Alt+Enter для вычисления размера подкаталога.

2 ответа2

2

На этой вики-странице Emacs предлагается использовать следующий фрагмент кода для расчета размера выбранных файлов и каталогов:

 (defun dired-get-size ()
  (interactive)
  (let ((files (dired-get-marked-files)))
    (with-temp-buffer
      (apply 'call-process "/usr/bin/du" nil t nil "-sch" files)
      (message "Size of all marked files: %s"
               (progn 
                 (re-search-backward "\\(^[0-9.,]+[A-Za-z]+\\).*total$")
                  (match-string 1))))))

 (define-key dired-mode-map (kbd "?") 'dired-get-size)

Если я вас правильно понял, вы бы хотели обновить значение буфера Dired напрямую. Я недостаточно знаком с внутренностями Дайреда, но думаю, это не так сложно.

2

Если ваша версия Emacs> = 24.4, вы можете попробовать библиотеку dired-du . Это доступно из репозитория ELPA.

После того, как вы установили эту библиотеку: Если ваш текущий буфер находится в режиме Dired, вы можете сделать:

C-x M-r

это переключает `dired-du-mode 'и отображает рекурсивный размер каталогов' in place 'в буфере Dired. Если вы посетите новый буфер Dired, то он также покажет рекурсивные буферы, пока вы не отключите режим.

Еще один совет:

C-x C-h

переключает формат размера. Есть 3 формата:

  1. По умолчанию один из команды `ls '.

  2. Удобочитаемый формат.

  3. Числовой формат с разделителем запятых тысяч.

Вы можете настроить опцию `dired-du-size-format ', чтобы сделать выбор формата изображения постоянным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .