¿Cómo puedo mostrar los tamaños de carpetas en emacs dired?

¿Cómo puedo mostrar los tamaños de carpetas en emacs dired?

He configurado dired y dired+ para ver listados de directorios y lo uso como mi administrador de archivos para mover/copiar archivos. Actualmente, dired enumera '0' como el tamaño de todos los subdirectorios en cualquier directorio.

Me gustaría que me dirigieran a calcular y mostrar los tamaños de las carpetas. Me gustaría que esto estuviera vinculado a una pulsación de tecla/clic del mouse, ya que no quiero que Dired haga esto en cada carpeta en cada búfer.

A partir de ahora, tengo "abrir en el explorador" (w32-shell-execute en Windows y gnome-open en gnome) vinculado a "O" desde donde uso Alt+Enter para calcular el tamaño del subdirectorio.

Respuesta1

EstePágina wiki de Emacssugiere utilizar el siguiente fragmento para calcular el tamaño de los archivos y directorios seleccionados:

 (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)

Si le entiendo correctamente, le gustaría actualizar el valor del búfer Dired directamente. No estoy lo suficientemente familiarizado con las partes internas de Dired, pero supongo que no debería ser tan difícil.

Respuesta2

Si su versión de Emacs es >=24.4, entonces puede probar ladired-dubiblioteca. Está disponible en el repositorio de ELPA.

Una vez que haya instalado esta biblioteca: si su búfer actual está en modo Dired, puede hacer:

C-x M-r

que alterna el `dired-du-mode' y muestra el tamaño recursivo de los directorios 'en su lugar' en el buffer de Dired. Si visita un nuevo búfer de Dired, también mostrará búferes recursivos, hasta que desactive el modo.

Otro consejo:

C-x C-h

alterna el formato de tamaño. Hay 3 formatos:

  1. El predeterminado del comando `ls'.

  2. Formato legible por humanos.

  3. Formato numérico con separador de comas de miles.

Puede personalizar la opción `dired-du-size-format' para que su elección de tamaño sea persistente.

información relacionada