Как отобразить размеры папок в emacs dired?

Как отобразить размеры папок в emacs dired?

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

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

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

решение1

ЭтотВики-страница 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 напрямую. Я не очень хорошо знаком с внутренностями Dired, но думаю, это не так уж и сложно.

решение2

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

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

C-x M-r

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

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

C-x C-h

переключает формат размера. Существует 3 формата:

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

  2. Формат, понятный человеку.

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

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

Связанный контент